常用且比较流行的哈希函数

问题描述 投票:0回答:7

我知道所有哈希函数的列表太长了。我只想知道日常 IT 实际任务中最常用的那些。我知道 MD5、SHA1、SHA2(256 和 512)非常流行。我可以在这 5 种算法中添加其他哈希函数吗?

我想开发一个哈希工具,我只想包含开发人员真正需要的那些算法。

security hash
7个回答
7
投票
  • MD5、SHA-1 - 常用,曾经是安全的,但不再抗碰撞
  • SHA-2 - 常用,安全。这是一系列具有不同输出大小的函数。
  • SHA-3 - 尚未指定,但之后可能会流行。等规格吧将是一个函数族。
  • CRC32 - 不安全,但作为校验和确实很常见
  • MD4、RIPEMD160 - 还没有看到用于散列文件的那些,但它们仍然存在于其他一些上下文中。 MD4 已损坏,RIPEMD 家族的一些较旧成员已损坏,但 RIPEMD160 仍然安全。我唯一见过漩涡的地方就是TrueCrypt的KDF。
  • TTH / TigerTreeHash - 在某些文件共享上下文中使用,仍然安全,但安全裕度变薄
  • ED2K - 用于某些文件共享上下文,基于 MD4,破坏了抗碰撞性
  • Skein、Blake2 - Skein 是 SHA-3 决赛入围者,Blake2 源自其中之一。软件相对较快,偶尔使用,但并不常见。作为 Blake2 的贡献者,我希望它变得更受欢迎:)

除了您命名的哈希值之外,CRC32 确实很常见,TTH/ED2K 用于文件共享上下文,但很少在其他地方使用。在文件哈希上下文中还没有看到太多其他哈希。


4
投票

最广泛使用(并在 SSL/TLS、OpenPGP、SSH 标准中定义)是:

  • CRC32 - 简单校验和,用于 ZIP、OpenPGP 和其他数字 标准。
  • MD2、MD5 - 太旧且弱 MD5 - 旧且被认为弱。
  • SHA1 - 事实上的标准,几乎无处不在(DSA 算法是 仅与 SHA1 一起使用,这也是广泛的使用范围)。
  • SHA224/256/384/512 - 应取代 SHA1,并与 DSA 密钥一起使用 大于 1024 位和 ECDSA 签名
  • RipeMD160 - 用于 OpenPGP 和一些 X.509 证书。

还有其他哈希算法(您可以在维基百科上获取完整列表),但很可能您在现实生活中永远不会遇到它们。


2
投票

bcrypt
scrypt
。这些用于密码哈希。

bcrypt
已经存在了很长一段时间,并且被认为是安全的。
scrypt
是较新的一个,它应用了一些内存密集型操作来防止GPU的暴力攻击。


0
投票
  • 如果您只想在工具中添加哈希函数,而不考虑安全性,则可以实现 MD-4 和 NIST SHA-1 和 SHA-2 竞赛决赛入围者。
  • 对于更新、更安全的哈希函数,可以实现 SHA-3 获胜者(Keccak)。

NIST 哈希函数竞赛

SHA-3


0
投票

首先,您需要决定是否需要快速、不安全的哈希函数,还是慢速、安全的哈希函数。

其中目前最好的是:

  • 快速:SSE4.2/armv7 HW、Murmur3、CityHash、FNV 上的 CRC32
  • 安全:SHA-3 (Keccak)、SHA-2、BLAKE2

请参阅 https://code.google.com/p/smhasher/w/list 了解一些流行框架的测试框架。

[编辑注释:上一页。有 bcrypt、scrypt 作为安全+慢速哈希函数,但它们只是密码哈希函数]


0
投票

哈希函数是加密算法,它接受输入消息并在输出中返回固定大小的字节字符串。它们用于将数据转换为原始数据唯一的固定长度哈希值。 https://akseek.com/11-most-important-cyber-security-techniques-you-should-know/#2_Encryption


-2
投票

我建议你学习DES和TDES,它们用密钥进行加密,如果你需要用公钥/私钥加密/解密数据,它们将是你不错的选择。

© www.soinside.com 2019 - 2024. All rights reserved.