Node.js:尝试解密加密的对称密钥时获取无效的RSAES-OAEP填充

时间:2018-04-13 03:55:17

标签: node.js encryption aes rsa cryptojs

我有一个用例,我想首先使用对称密钥加密我的数据,然后使用客户端的公钥加密对称密钥。我试图模仿这个场景,但是得到了无效的RSAES-OAEP填充'错误。

代码:

var forge = require('node-forge');
var _crypto = require('crypto');
var rsa = forge.pki.rsa;

var masterKey = _crypto.randomBytes(32);
var keypair = rsa.generateKeyPair(2048);
var encryptedVal = keypair.publicKey.encrypt(masterKey, 'RSA-OAEP');
var decryptedVal = keypair.privateKey.decrypt(encryptedVal, 'RSA-OAEP');
console.log(masterKey,decryptedVal)

加密前我是否必须转换对称密钥格式?如果有,那是什么?

1 个答案:

答案 0 :(得分:1)

masterKeyBuffer。您需要将其转换为字节,以便伪造可以使用它

尝试此功能(我没有测试过它......)

function toBytes(buf) {
    var byteString = '';
    for (var i = 0; i < buf.length; ++i) {
        byteString += String.fromCodePoint(buf[i]);
    }
    return byteString;
}

用法

var masterKey = toBytes(_crypto.randomBytes(32));