Node.js Builtin Crypto:RSA解密

时间:2013-08-15 12:21:12

标签: node.js encryption rsa node-crypto

我正在使用node.js 0.10.12。我生成了2048位RSA密钥对,我在本地存储为.pem文件。

使用节点附带的内置“crypto”库,我试图解密用上面提到的公共RSA密钥加密的数据块。

我已经走到这一步了:

var privateKey = fs.readFileSync('private.pem', { encoding: 'utf8' });

var cryptOpt = { key: /* PEM encoded private key */ privKey };

var cred = crypto.createCredentials( cryptOpt );

var rsa = crypto.createDecipheriv( 'rsa', cred.?key-in-binary-format?, cred.?initialization vector? );

我不确定我是在正确的道路上。

•我不知道密钥以二进制形式存储在'cred'中的哪个位置。

•我不知道在initial-vector参数中放什么。

数据将使用iOS上的标准库进行加密,据我所知,在使用RSA进行加密时,用户无法指定初始化向量。

我无法从node.js加密文档中提取很多知识或理解: http://nodejs.org/api/crypto.html

1 个答案:

答案 0 :(得分:1)

由于nodejs中没有发生任何非对称​​加密,我认为你或多或少会在树林里迷失方向。如果要使用RSA加密任何内容,则需要另一个库。 openssl list-cipher-algorithmscrypto.createCipher(algorithm, password)仅列出对称算法(如AES和DES等)的crypto.createCipheriv(algorithm, key, iv)文档。 IV通常以任何一种方式用于对称算法。 nodejs似乎只支持RSA签名和验证。

我真的建议在继续你的发展道路之前深入研究这个主题。