我正在尝试使用 node.js 加密 API 和受密码保护的私钥来签名和验证消息,这让我得到了这个:
> var sig = crypto.createSign('RSA-SHA256').update('psst').sign(pk,'hex');
Enter PEM pass phrase:
并且节点此时刚刚锁定。我似乎找不到以编程方式传递密码的选项。
我正在尝试使用 node.js 加密 API 和受密码保护的私钥来签名和验证消息,这让我得到了这个:
> var sig = crypto.createSign('RSA-SHA256').update('psst').sign(pk,'hex');
Enter PEM pass phrase:
并且节点此时刚刚锁定。我似乎找不到以编程方式传递密码的选项。
我对此的修复刚刚登陆 core,它还没有正式发布,但是当它发布时,你可以像这样使用它:
var sig = crypto.createSign('RSA-SHA256').update('psst').sign({
key: pk,
passphrase: 'password'
}, 'hex');
将在此版本发布后更新。登陆 v0.11.8 版本。
这是一个可行的解决方案,您可以在应用启动时解密私钥,然后正常使用它,例如:
var childProcess = require('child_process'),
crypto = require('crypto');
var pk;
var sign = function () {
var sig = crypto.createSign('RSA-SHA256').update('psst').sign(pk,'hex');
console.log(sig);
};
childProcess.exec('openssl rsa -in /path/to/private_key -passin pass:your_password', {},
function (err, stdout, stderr) {
if (err) throw err;
pk = stdout; // Save in memory for later use
sign();
});