Следующий пример равен C#
эквиваленту предоставленного вами псевдокода:
using System;
using System.Security.Cryptography;
using System.Text;
...
public static void Demo()
{
using (SHA256 sha256 = SHA256.Create())
{
string textToHash = "";
byte[] bytesToHash = Encoding.UTF8.GetBytes(textToHash);
byte[] hash = sha256.ComputeHash(bytesToHash);
string hexDigest = ToHexStr(hash);
Console.WriteLine(hexDigest);
}
}
public static string ToHexStr(byte[] hash)
{
StringBuilder hex = new StringBuilder(hash.Length * 2);
foreach (byte b in hash)
hex.AppendFormat("{0:x2}", b);
return hex.ToString();
}
Этот метод создает следующий результат для пустой строки:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Этот результат соответствует пример хэшированного значения для пустой строки из AWS Документация (шаг 6) .