我使用的是node.js 0.10.12。我已生成 2048 位 RSA key 对,并将其存储为本地 .pem 文件。
使用 Node 附带的内置“加密”库,我尝试解密使用上述 RSA 公钥加密的数据 block 。
我已经走到这一步了:
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? );
我不确定我是否走在正确的道路上。
• 我不知道 key 以二进制形式存储在“cred”内的何处。
• 我不知道要在初始化向量参数中放入什么。
数据将使用 iOS 上的标准库进行加密,据我所知,该标准库不允许用户在使用 RSA 加密时指定初始化向量。
我无法从 Node.js 加密文档中获取太多知识或理解: http://nodejs.org/api/crypto.html
最佳答案
由于 Node.js 中没有发生任何非对称加密,我认为您或多或少迷失在树林中。如果您想使用 RSA 加密任何内容,您将需要另一个库。 openssl list-cipher-algorithms
文档中 crypto.createCipher(algorithm,password)
和 crypto.createCipheriv(algorithm, key, iv)
仅列出对称算法,例如 AES 和 DES(等)。无论哪种方式,IV 通常仅用于对称算法。 Nodejs 似乎只支持 RSA 签名和验证。
我真的建议在继续您的开发道路之前深入了解该主题。
关于Node.js 内置加密货币 : RSA Decryption,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18252513/