我知道所有哈希函数的列表太长了。我只想知道日常 IT 实际任务中最常用的那些。我知道 MD5、SHA1、SHA2(256 和 512)非常流行。我可以在这 5 种算法中添加其他哈希函数吗?
我想开发一个哈希工具,我只想包含开发人员真正需要的那些算法。
除了您命名的哈希值之外,CRC32 确实很常见,TTH/ED2K 用于文件共享上下文,但很少在其他地方使用。在文件哈希上下文中还没有看到太多其他哈希。
最广泛使用(并在 SSL/TLS、OpenPGP、SSH 标准中定义)是:
还有其他哈希算法(您可以在维基百科上获取完整列表),但很可能您在现实生活中永远不会遇到它们。
bcrypt
和scrypt
。这些用于密码哈希。
bcrypt
已经存在了很长一段时间,并且被认为是安全的。 scrypt
是较新的一个,它应用了一些内存密集型操作来防止GPU的暴力攻击。
首先,您需要决定是否需要快速、不安全的哈希函数,还是慢速、安全的哈希函数。
其中目前最好的是:
请参阅 https://code.google.com/p/smhasher/w/list 了解一些流行框架的测试框架。
[编辑注释:上一页。有 bcrypt、scrypt 作为安全+慢速哈希函数,但它们只是密码哈希函数]
哈希函数是加密算法,它接受输入消息并在输出中返回固定大小的字节字符串。它们用于将数据转换为原始数据唯一的固定长度哈希值。 https://akseek.com/11-most-important-cyber-security-techniques-you-should-know/#2_Encryption
我建议你学习DES和TDES,它们用密钥进行加密,如果你需要用公钥/私钥加密/解密数据,它们将是你不错的选择。