node.js - 在Nodejs上加密角度解密数据
问题描述
这样做的方法是什么?我尝试在节点上的角度和加密模块上使用 CryptoJS,但没有成功我不断收到描述错误
角加密方法:
_rsaEnc(p) {
var e = new JSEncrypt();
const key = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDlOJu6TyygqxfWT7eLtGDwajtNFOb9I5XRb6khyfD1Yt3YiCgQWMNW649887VGJiGr/L5i2osbl8C9+WJTeucF+S76xFxdU6jE0NQ+Z+zEdhUTooNRaY5nZiu5PgDB0ED/kaskaskKAS';
e.setPublicKey(key);
return e.encrypt(p);
}
节点解密方法
privK = {
key: fs.readFileSync('./app/services/private.pem').toString(),
passphrase: 'xxxxxx'
};
var buf = Buffer.from(base64Data, 'base64');
origData = crypto.privateDecrypt(privK, buf);
return origData.toString('utf-8');
错误:
错误:错误:040A1079:rsa 例程:RSA_padding_check_PKCS1_OAEP_mgf1:oaep 解码错误
解决方案
最终将角度库更改为 jsencrypt,CryptoJS 不支持 RSA,并将节点库更改为 node-rsa 以将加密方案设置为 pkcs1
myDecrypter.setOptions({encryptionScheme: 'pkcs1'});
推荐阅读
- c - 如何在 Gnome 的 alt-tab 视图中显示 XCB 窗口的名称?
- javascript - 如何在 JavaScript 中从 JSON 文件中读取特定数据?
- android - 为什么不为每个职位调用 getView?
- sum - 如何使用 Apache Flink 在同一数据集上计算两个总和
- xml - 在 XSLT 中,如何使用存在多个相同节点的 ID 从节点中选择一个值?
- excel - 如何删除范围内的所有行?
- python - 打开函数在 python 上返回 404 错误
- r - googledrive unnest 返回未使用的参数错误
- ios - ViewController 不能使用通过 sender 参数传递的字符串
- linux - 从 Windows 到 Linux 的 C++ 可移植性