我正在使用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
答案 0 :(得分:1)
由于nodejs中没有发生任何非对称加密,我认为你或多或少会在树林里迷失方向。如果要使用RSA加密任何内容,则需要另一个库。 openssl list-cipher-algorithms
和crypto.createCipher(algorithm, password)
仅列出对称算法(如AES和DES等)的crypto.createCipheriv(algorithm, key, iv)
文档。 IV通常以任何一种方式用于对称算法。 nodejs似乎只支持RSA签名和验证。
我真的建议在继续你的发展道路之前深入研究这个主题。