使用 openssl 和 node.js 验证签名
Posted
技术标签:
【中文标题】使用 openssl 和 node.js 验证签名【英文标题】:Verify signature with openssl and node.js 【发布时间】:2020-03-23 17:23:08 【问题描述】:我正在尝试验证 node.js 中的 openssl 签名,但无法完成。我正在使用这个包:https://github.com/codevibess/openssl-nodejs
我所拥有的:签名 SHA-512 哈希、公钥和已签名的令牌 我想要什么:openssl 应该告诉我签名是否有效
在控制台中我会这样做:
openssl dgst -sha512 -verify pub_key.pem -signature bas64_decoded_hash my_token
但是当我跑步时:
openssl('openssl dgst -sha512 -verify ' + publicKey + ' -signature ' + signature + ' ' + token, function (err, buffer)
console.log(err.toString(), buffer.toString()););
我收到类似“OpenSSL 进程以代码 1 结束”之类的错误 没有要验证的签名:使用 -signature 选项"
有什么建议吗?
【问题讨论】:
【参考方案1】:我实际上最终用私钥加密了一个令牌,然后将令牌和加密值发送给接收者。
在接收端,我使用公钥解密该值:
execShellCommand('echo "' + request.body.signature + '" | openssl base64 -d|openssl rsautl -inkey rsa.public -pubin');
最后我检查解密结果是否与令牌匹配。
【讨论】:
以上是关于使用 openssl 和 node.js 验证签名的主要内容,如果未能解决你的问题,请参考以下文章