Files
ClassContent/项目合集/电商App/shop_backend/test/index.js
2025-02-19 00:34:51 +08:00

43 lines
1.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const forge = require("node-forge")
// // 1. 加载公钥(假设公钥已存在,此处用 PEM 占位符)
// const publicKeyPem = `-----BEGIN PUBLIC KEY-----
// MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAISllU6XByx95bXml93hyjJkmD8m4Ff2
// 1BMQ2NdDzsdmUMiPsXul0EmLWgPRSQZKGS30C142JAjYT4gyaLGsXeMCAwEAAQ==
// -----END PUBLIC KEY-----`;
// // 2. 加载公钥对象
// const publicKey = forge.pki.publicKeyFromPem(publicKeyPem);
// // 3. 待解密的数据Base64 编码的加密内容)
// const encryptedBase64 = '...'; // 替换为你的加密数据
// // 4. Base64 解码加密数据
// const encryptedData = forge.util.decode64(encryptedBase64);
// // 5. 使用公钥解密(非标准操作,需确保加密时支持)
// try {
// const decryptedData = publicKey.decrypt(encryptedData, 'RSAES-PKCS1-V1_5');
// const plainText = forge.util.decodeUtf8(decryptedData);
// console.log('解密结果:', plainText);
// } catch (error) {
// console.error('解密失败:', error.message);
// }
// 示例私钥加密(仅用于测试)
const privateKeyPem = `-----BEGIN PRIVATE KEY-----
MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAhKWVTpcHLH3lteaX
3eHKMmSYPybgV/bUExDY10POx2ZQyI+xe6XQSYtaA9FJBkoZLfQLXjYkCNhPiDJo
saxd4wIDAQABAkBiOxFf2t5YJ3+2fmbWzP/k47QPiGW5HrQczmwWtkNqTBYNNxAx
vCkwygm61wN95krzGETFtmpkYYb8SM9JbiLxAiEA5qt/CuOJfu+Uu2bnvBnDwpxC
U/IGuKZXlVKyvm2auHkCIQCTNn/UfFT0CojoNltBu49uwdNDwfptvQdaaj9UwsAq
OwIgAkCqfPC75wFv8mSO3sdhogTkoO08I5F8SXkFRdbMLAECICIaR/ajbtKx9hFF
NlK97nZL9HMH5smxNpjdcBpkmzutAiAvXVkx64QEtu/+UtHNo+zNR8ap5HB6a+ZM
sB4t3z2WcA==
-----END PRIVATE KEY-----`;
const privateKey = forge.pki.privateKeyFromPem(privateKeyPem);
const plainText = 'Hello, World!';
const encrypted = privateKey.sign(forge.md.sha1.create(), plainText); // 使用签名方法模拟加密
const encryptedBase64 = forge.util.encode64(encrypted);
console.log('私钥加密结果 (Base64):', encryptedBase64);