簡體   English   中英

使用SHA256在C#中簽名文本

[英]Sign text in C# with 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#中唱歌一個字符串,然后使用obove代碼進行驗證,從而在nodeJS中驗證字符串的簽名。

因此,我正在尋找以下等價物:

// sign string
var signer = crypto.createSign('sha256');
signer.update('ugus-dev/logo.png');
var sign = signer.sign(privateKey,'base64');

在C#中。

領先優勢:

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM