有很多MD5 JavaScript实现。 有人知道哪一个是最先进的,修复最多的,最快的吗?
我需要它来做这个工具。
有很多MD5 JavaScript实现。 有人知道哪一个是最先进的,修复最多的,最快的吗?
我需要它来做这个工具。
当前回答
我找到了许多关于这个主题的文章。 他们都建议约瑟夫·迈耶斯实施。
在某些测试中,请参阅:http://jsperf.com/md5-shootout
在我对终极速度的追求中,我看了这段代码,我看到它可以改进。所以我基于Joseph Meyers代码创建了一个新的JS脚本。
参见改进的约瑟夫迈耶斯代码
其他回答
您还可以检查我的md5实现。应该是大约。和上面其他贴的一样。不幸的是,性能受到内环的限制,不可能进一步优化。
我找到了许多关于这个主题的文章。 他们都建议约瑟夫·迈耶斯实施。
在某些测试中,请参阅:http://jsperf.com/md5-shootout
在我对终极速度的追求中,我看了这段代码,我看到它可以改进。所以我基于Joseph Meyers代码创建了一个新的JS脚本。
参见改进的约瑟夫迈耶斯代码
更快的哈希应该可以通过在显卡上计算(在WebGL中实现哈希算法),正如关于SHA256的讨论:是否有可能在浏览器中使用用户的视频卡来计算SHA256哈希值?使用WebGL还是Flash?
为什么不试试http://phpjs.org/functions/md5/?
不幸的是,任何模拟脚本的性能都是有限的,但是这可以呈现真正的md5散列。尽管我建议不要使用md5作为密码,因为它是一个快速呈现的散列。
到2020年,最快的MD5实现可能是用WASM (Web Assembly)编写的。
hash- WASM是一个在WASM中实现MD5哈希的库。
您可以在这里找到基准测试。
你可以用npm安装它:
npm i hash-wasm
或者只是添加一个脚本标记
<script src="https://cdn.jsdelivr.net/npm/hash-wasm"></script>
然后使用hashwasm全局变量。
例子:
async function run() {
console.log('MD5:', await hashwasm.md5('The quick brown fox jumps over the lazy dog'));
}
run();
输出
MD5: 9e107d9d372bb6826bd81d3542a419d6