我知道所有哈希函数的列表太长了。我只想知道在日常 IT 实际任务中使用的最流行的那些。我知道 MD5、SHA1、SHA2(256 和 512)非常受欢迎。我可以在这 5 种算法中添加任何其他哈希函数吗?
我想开发一个哈希工具,我只想包含开发人员真正需要的那些算法。
除了您命名为 CRC32 的哈希值之外,它确实很常见,并且 TTH/ED2K 用于文件共享上下文,但在其他地方很少使用。在文件散列上下文中没有看到太多其他散列。
最广泛使用(并在 SSL/TLS、OpenPGP、SSH 标准中定义)是:
还有其他哈希算法(您可以在 wikipedia 上获得完整列表),但很可能您在现实生活中永远不会遇到它们。
bcrypt
和scrypt
。这些用于密码散列。
bcrypt
已经存在了很长时间,并且被认为是安全的。scrypt
是一个较新的,它应用了一些内存密集型操作来防止 GPU 的暴力攻击。
首先,您需要决定是想要快速、不安全的散列函数还是慢速、安全的散列函数。
目前最好的是:
有关一些流行的测试框架,请参阅https://code.google.com/p/smhasher/w/list。
[编辑说明:上一页。有 bcrypt,scrypt 作为安全+慢散列函数,但它们只是密码散列函数]
我建议您学习 DES 和 TDES,它们使用密钥进行加密,如果您需要使用公钥/私钥加密/解密数据,它们将是您的不错选择。