App windows 8 hash md5

时间:2014-02-04 11:29:08

标签: md5 winjs

我需要计算在创建的windows8应用中本地保存的文件的md5 javascript / html。

我需要md5将它与在线文件进行比较,看看这两个对象是否真的相同。

我应该使用什么功能?

2 个答案:

答案 0 :(得分:1)

这是我使用Windows.Security.Cryptography命名空间在MD5中散列字符串的代码:

var inputBuffer, outputBuffer, toHash, hashed,
    hashProvider = Windows.Security.Cryptography.Core.HashAlgorithmProvider.openAlgorithm(Windows.Security.Cryptography.Core.HashAlgorithmNames.md5); // "open" an md5 hash provider

toHash = 'string'; // string to hash
inputBuffer = Windows.Security.Cryptography.CryptographicBuffer.convertStringToBinary(toHash, Windows.Security.Cryptography.BinaryStringEncoding.utf8); // convert string to binary
outputBuffer = hashProvider.hashData(inputBuffer); // hash the binary
hashed = Windows.Security.Cryptography.CryptographicBuffer.encodeToHexString(outputBuffer); // the hashed string

现在,您需要做的就是阅读文件(参见http://msdn.microsoft.com/en-us/library/windows/apps/hh464978.aspx)。如果将文件读入缓冲区,那么您将不需要convertStringToBinary行。

答案 1 :(得分:0)

WinRT API在Windows.Security.Cryptography.Core命名空间中提供SHA功能,特别是通过静态方法HashAlgorithmProvider.openAlgorithm(Windows.Security.Cryptography.Certificates.HashAlgorithmNames.sha256)

这为您提供了一个HashAlgorithmProvider类,它具有hashData等方法。

this Link中的Fin在密码学方面可以在winjs中使用。

Here你可以找到一个关于如何为字符串实现MD5计算器的例子,因为它有一个良好的开端使它适用于文件。

希望这有帮助。