Подписать текст в C# с SHA256
У меня есть некоторый код в 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#.
1 ответ
Главный старт:
using System.Security.Cryptography;
using System.Text;
SHA256 mySHA=SHA256.Create();
string myText="yourText";
byte[] byteArr=Encoding.UTF8.GetBytes(myText);
byte[] hash=mySHA.ComputeHash(byteArr);
string res=BitConverter.ToString(hash);
//Or
string res=Convert.ToBase64String(hash);