有很多MD5 JavaScript实现。 有人知道哪一个是最先进的,修复最多的,最快的吗?
我需要它来做这个工具。
有很多MD5 JavaScript实现。 有人知道哪一个是最先进的,修复最多的,最快的吗?
我需要它来做这个工具。
当前回答
也许这个包是有用的 https://www.npmjs.com/package/pure-md5
console.time('latin'); 常量拉丁语 = MD5('你好'); console.timeEnd('latin'); console.log('Привет: ', md5('Привет')); console.log('嘿: ', md5('嘿')); <script src=“https://unpkg.com/pure-md5@latest/lib/index.js”></script>
其他回答
我听说Joseph的Myers实现非常快。此外,他还有一篇关于Javascript优化的长篇文章,描述了他在编写实现时学到的东西。对于任何对性能javascript感兴趣的人来说,这是一本很好的读物。
http://www.webreference.com/programming/javascript/jkm3/
他的MD5实现可以在这里找到
如果应用程序的性能受到MD5的Javascript实现的限制,那么您确实做错了什么。考虑架构变化(提示:减少使用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
目前最快的md5实现(基于Joseph Myers的代码):
https://github.com/iReal/FastMD5
jsPerf比较:http://jsperf.com/md5-shootout/63
令我烦恼的是,我找不到一个既快速又支持Unicode字符串的实现。
所以我做了一个支持Unicode字符串的实现,并且仍然比目前最快的ascii-only-strings实现更快(在编写时):
https://github.com/gorhill/yamd5.js
基于Joseph Myers的代码,但使用了TypedArrays,并进行了其他改进。