1

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

使用节点附带的内置“加密”库,我正在尝试解密使用上述公共 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”中的什么位置。

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

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

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

4

1 回答 1

1

由于 nodejs 中没有发生任何非对称加密,我认为您或多或少地迷失在树林中。如果你想用 RSA 加密任何东西,你将需要另一个库。该openssl list-cipher-algorithms文档crypto.createCipher(algorithm, password)crypto.createCipheriv(algorithm, key, iv)列出了对称算法,例如 AES 和 DES(等)。通常,IV 仅用于对称算法。nodejs 似乎只支持 RSA 签名和验证。

我真的建议在继续您的开发道路之前深入了解主题。

于 2013-08-15T13:51:14.890 回答