我需要计算在创建的windows8应用中本地保存的文件的md5 javascript / html。
我需要md5将它与在线文件进行比较,看看这两个对象是否真的相同。
我应该使用什么功能?
答案 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计算器的例子,因为它有一个良好的开端使它适用于文件。
希望这有帮助。