我需要从浏览器中的文件(〜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/

10-15 15:37