【发布时间】:2023-03-08 07:20:01
【问题描述】:
我在 nodejs 中有一些代码,我正在尝试在 C# 中复制,但我似乎找不到像 nodejs 那样的简单解决方案:
var crypto = require('crypto');
var privateKey = '-----BEGIN RSA PRIVATE KEY-----\n'+
/// key removed
'-----END RSA PRIVATE KEY-----';
var publicKey = '-----BEGIN PUBLIC KEY-----\n'+
/// key removed
'-----END PUBLIC KEY-----';
// sign string
var signer = crypto.createSign('sha256');
signer.update('ugus-dev/logo.png');
var sign = signer.sign(privateKey,'base64');
console.log(sign);
// verify signature
var verifier = crypto.createVerify('sha256');
verifier.update('ugus-dev/logo.png');
var ver = verifier.verify(publicKey, sign,'base64');
console.log(ver); // true if signature matches.
基本上我会在 C# 中唱出一个字符串,然后在 nodeJS 中使用上面的验证代码验证字符串的签名。
所以我正在寻找一个等价的:
// sign string
var signer = crypto.createSign('sha256');
signer.update('ugus-dev/logo.png');
var sign = signer.sign(privateKey,'base64');
在 C# 中。
【问题讨论】:
-
这是为我做的,特别是 Chris.J 的回答,谢谢 bartonjs!
标签: c# node.js cryptography sign