有很多MD5 JavaScript实现。 有人知道哪一个是最先进的,修复最多的,最快的吗?
我需要它来做这个工具。
有很多MD5 JavaScript实现。 有人知道哪一个是最先进的,修复最多的,最快的吗?
我需要它来做这个工具。
当前回答
更快的哈希应该可以通过在显卡上计算(在WebGL中实现哈希算法),正如关于SHA256的讨论:是否有可能在浏览器中使用用户的视频卡来计算SHA256哈希值?使用WebGL还是Flash?
其他回答
令我烦恼的是,我找不到一个既快速又支持Unicode字符串的实现。
所以我做了一个支持Unicode字符串的实现,并且仍然比目前最快的ascii-only-strings实现更快(在编写时):
https://github.com/gorhill/yamd5.js
基于Joseph Myers的代码,但使用了TypedArrays,并进行了其他改进。
如果应用程序的性能受到MD5的Javascript实现的限制,那么您确实做错了什么。考虑架构变化(提示:减少使用MD5)
Node.js有内置的支持
const crypto = require('crypto')
crypto.createHash('md5').update('hello world').digest('hex')
上面的代码段为字符串hello world计算MD5十六进制字符串
这种解决方案的优点是不需要安装额外的库。
我认为内置解决方案应该是最快的。如果不是,我们应该为Node.js项目创建issue/PR。
也许这个包是有用的 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实现可以在这里找到