Node.js 内置加密货币 : RSA Decryption

标签 node.js encryption rsa node-crypto

我使用的是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/

相关文章:

javascript - 删除 sql 或 javascript 循环中的层次结构行

python - Python 3 中的 for 循环出现问题 : getting the index in string2 of an element from string1

ios - 使用来自服务器的字符串公钥进行 RSA 加密

javascript - 使用 RSA 解密字符串

django - "Django-Gevent"还是 "Django-Nodejs-redis"?

javascript - Node : Closing Socket IO idle connections

jquery - socket.io 应用程序总是在提交时刷新

java - 使用凯撒密码对大数进行加密

javascript - 加密稍后解密的数据

java - 在 Java 中使用 RSA 加密 SecretKey