gpt4 book ai didi

java - 如何将具有两个更新语句的 Java MessageDigest 转换为 C#

转载 作者:行者123 更新时间:2023-11-30 02:22:02 26 4
gpt4 key购买 nike

如何将此 Java 代码转换为 C# 代码?

    byte[] a = ...some byte array...;
byte[] b = ...some byte array...;

MessageDigest m_Hash = MessageDigest.getInstance("SHA-1");
m_Hash.update(a);
m_Hash.update(b);
byte[] ub = m_Hash.digest();

到目前为止我已经:

        var hash = HashAlgorithm.Create("SHA-1");
hash.ComputeHash(a);
hash.ComputeHash(b);

但我认为这没有朝着正确的方向发展,因为 ComputeHash 实际上返回一个 byte[]。

最佳答案

所以...看起来更新只是附加字节数组...我编写了一个函数来执行此操作,它看起来像这样:

    var hash = HashAlgorithm.Create("SHA-1");
byte[] ub = hash.ComputeHash(AppendArrays(a, b));

public byte[] AppendArrays(byte[] b1, params byte[][] others)
{
int n = b1.Length;
foreach (var other in others)
n += other.Length;

var result = new byte[n];

n = 0;
Array.Copy(b1, 0, result, n, b1.Length);
n += b1.Length;
foreach (var other in others)
{
Array.Copy(other, 0, result, n, other.Length);
n += other.Length;
}

return result;
}

关于java - 如何将具有两个更新语句的 Java MessageDigest 转换为 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46534429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com