如何使用c中的securerandom等效类从随机字节创建哈希值#使用sha-512

sq1bmfud  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(330)

这个问题在这里已经有答案了

c#中的java messagedigest类(3个答案)
12天前关门了。
此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);
v9tzhpje

v9tzhpje1#

应该是:

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

相关问题