我需要从浏览器中的文件(〜6MB)创建SHA-256摘要。到目前为止,我设法做到的唯一方法是这样的:
var reader = new FileReader();
reader.onload = function() {
// this gets read of the mime-type data header
var actual_contents = reader.result.slice(reader.result.indexOf(',') + 1);
var what_i_need = new jsSHA(actual_contents, "B64").getHash("SHA-256", "HEX");
}
reader.readAsDataURL(some_file);
尽管这可以正常工作,但问题在于它非常慢。 6MB文件花了大约2-3秒。我该如何改善?
最佳答案
您可能想看看斯坦福JS加密库
GitHub
Website with Examples
从网站:
SJCL有一个测试页,显示需要多长时间。
SHA256迭代为184毫秒。从分解聚合中获得SHA-256的时间为50毫秒。
测试page
样例代码:
加密数据:sjcl.encrypt("password", "data")
解密数据:sjcl.decrypt("password", "encrypted-data")
关于javascript - 从JavaScript中的Blob/文件创建SHA-256哈希,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21761453/