[英]Incremental Hashing in WinRT/Metro
我正在移植一些大量使用增量SHA-1的代码:
SHA1 hasher = HashAlgoFactory.Create<SHA1>();
hasher.Initialize();
DiskIOCallback readCallback = null;
readCallback = delegate(bool successful) {
if (successful)
hasher.TransformBlock(hashBuffer, 0, count, hashBuffer, 0);
offset += count;
if (!successful || offset == endOffset)
{
object hash = null;
if (successful)
{
hasher.TransformFinalBlock(hashBuffer, 0, 0);
hash = hasher.Hash;
}
并且正在寻找WinRT / Metro版本。 我以前用过hasher.HashData; 是否有一些相对简单的方法可以从HashData中获取增量行为,或者有一些替代方法可以实现与上述相同的功能(以WinRT / Metro方式)? 我完全有可能遗漏一些明显的东西...
您应该使用CryptographicHash类:
var hashProvider = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha1);
var hasher = hashProvider.CreateHash();
您可以追加多个数据增量:
hasher.Append(bytesPart.AsBuffer());
完成后,您将检索哈希值:
var hash = hasher.GetValueAndReset().ToArray();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.