如何使用 SHA-512 在 C# 中使用等效的 secureRandom class 从随机字节创建哈希值

how to create hash value from random bytes using secureRandom equivalent class in C# using SHA-512

此 Java C# 代码的等效代码

SecureRandom random = new SecureRandom();
byte randBytes[] = new byte[64];
random.nextBytes(randBytes);
MessageDigest md = MessageDigest.getInstance("SHA-512");
md.update(randBytes);
byte[] hash = md.digest();
byte[] encodedHash = Base64.encodeBase64(hash);

应该是:

var randBytes = new byte[64];

using (var random = RandomNumberGenerator.Create())
{
    random.GetBytes(randBytes);
}

byte[] hash;

using (var md = SHA512.Create())
{
    hash = md.ComputeHash(randBytes);
}

string encodedHash = Convert.ToBase64String(hash);

不清楚使用计算一些随机字节的散列。

请注意,技术上 Java encodedHash 是 utf8 格式。如果你真的想要 utf8:

byte[] encodedHash2 = Encoding.UTF8.GetBytes(encodedHash);