我正在尝试将一些现有的C ++代码翻译成C#。我有一些代码在同一个CryptHashData
上调用HCRYPTHASH
3次。文档说“可以多次调用此函数和CryptHashSessionKey
来计算长数据流或不连续数据流的散列。”
我希望在C#中实现这一目标。不幸的是,MD5.ComputeHash()
似乎没有办法在现有的哈希上构建。
我错过了什么,是否有可以实现此目的的C#API?
答案 0 :(得分:1)
实例化哈希类的实例并使用TransformBlock
和TransformFinalBlock
:
byte[] part1 = //...
byte[] part2 = //...
byte[] part3 = //...
var hash = new MD5CryptoServiceProvider();
hash.TransformBlock(part1, 0, part1.Length, null, 0);
hash.TransformBlock(part2, 0, part2.Length, null, 0);
hash.TransformFinalBlock(part3, 0, part3.Length);
byte[] res = hash.Hash;
答案 1 :(得分:0)