如何使用 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);
此 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);