0

C# 中此 Java 代码的等效代码

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

1 回答 1

1

它应该是:

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

不清楚计算一些随机字节的哈希的用途。

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

byte[] encodedHash2 = Encoding.UTF8.GetBytes(encodedHash);
于 2020-12-28T11:14:06.723 回答