有很多MD5 JavaScript实现。 有人知道哪一个是最先进的,修复最多的,最快的吗?

我需要它来做这个工具。


当前回答

我编写了测试来比较几种JavaScript哈希实现,包括这里提到的大多数MD5实现。 要运行测试,请访问http://brillout.github.io/test-javascript-hash-implementations/并稍等片刻。

似乎R. Hill的答案的YaMD5实现是最快的。

其他回答

目前最快的md5实现(基于Joseph Myers的代码):

https://github.com/iReal/FastMD5

jsPerf比较:http://jsperf.com/md5-shootout/63

更快的哈希应该可以通过在显卡上计算(在WebGL中实现哈希算法),正如关于SHA256的讨论:是否有可能在浏览器中使用用户的视频卡来计算SHA256哈希值?使用WebGL还是Flash?

Node.js有内置的支持

const crypto = require('crypto')
crypto.createHash('md5').update('hello world').digest('hex')

上面的代码段为字符串hello world计算MD5十六进制字符串

这种解决方案的优点是不需要安装额外的库。

我认为内置解决方案应该是最快的。如果不是,我们应该为Node.js项目创建issue/PR。

我听说Joseph的Myers实现非常快。此外,他还有一篇关于Javascript优化的长篇文章,描述了他在编写实现时学到的东西。对于任何对性能javascript感兴趣的人来说,这是一本很好的读物。

http://www.webreference.com/programming/javascript/jkm3/

他的MD5实现可以在这里找到

如果应用程序的性能受到MD5的Javascript实现的限制,那么您确实做错了什么。考虑架构变化(提示:减少使用MD5)