【发布时间】:2017-05-07 16:09:04
【问题描述】:
我不知道如何在 UWP 中计算大文件的哈希值。哈希算法接受 IBuffer 接口作为数据参数,无法从流中获取数据。只有两种方式看起来都是死胡同:
- 无法将整个文件加载到内存中,因为文件可能太大。
- 使用 IBuffer 接口实现某种流读取器似乎也不可行,因为 IBuffer 只有两个属性:长度和容量。
这是来自 MSDN 的精简示例,它显示了当数据在字符串中时如何使用算法。
IBuffer buffUtf8Msg = CryptographicBuffer.ConvertStringToBinary(strMsg, BinaryStringEncoding.Utf8);
HashAlgorithmProvider objAlgProv = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Md5);
IBuffer buffHash = objAlgProv.HashData(buffUtf8Msg);
string hex = CryptographicBuffer.EncodeToHexString(buffHash);
在不编写自己的算法或使用第三方组件的情况下,如何在 UWP 中计算大文件的 MD5 哈希?
【问题讨论】:
标签: c# hash cryptography uwp md5