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);