用于大型字符串的SHA1 JavaScript实现

我遇到同样的问题:可以在流上计算SHA-1算法吗? 内存占用少?

我正在寻找一个JavaScript实现,它通过一个非常大的字符串块来计算。 这个想法是将字符串分成512位块并逐块执行。

任何提示?

[更新]感谢sunetos的帮助,我写了一个litte html5 java脚本应用程序:在Javascript中使用HTML5文件API生成SHA1文件校验和


我相信我在http://pajhome.org.uk/crypt/md5/contrib/sha1_stream.js上遇到了Paul Johnston的一篇。 它在http://pajhome.org.uk/crypt/md5/scripts.html页面上列出。 我自己没有测试过它,但我已经使用了他为其修改的非流式版本。

更新:这里是一些示例代码(我验证它与单独的SHA1已知是正确的)。 确保在流式sha1_stream.js之前包含原始的sha1.js(可在http://pajhome.org.uk/crypt/md5/sha1.js找到)。

<script src="sha1.js" type="text/javascript" charset="utf-8"></script>
<script src="sha1_stream.js" type="text/javascript" charset="utf-8"></script>

<script type="text/javascript" charset="utf-8">

    var input = 'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz';

    var blocksize = 512;
    var h = naked_sha1_head();
    for (var i = 0; i < input.length; i += blocksize) {
        var len = Math.min(blocksize, input.length - i);
        var block = input.substr(i, len);
        naked_sha1(str2binb(block), len*chrsz, h);
    }
    var result = binb2hex(naked_sha1_tail(h));

</script>
链接地址: http://www.djcxy.com/p/46695.html

上一篇: SHA1 JavaScript Implementation for large string

下一篇: how to get compile warning