- 区块链原理、技术及应用
- 范凌杰编著
- 383字
- 2025-02-18 00:54:48
2.1.2 哈希算法的特点
典型的哈希算法有以下特性。
● 单向性。如果两个哈希值是不相同的(根据同一函数),那么这两个哈希值的原始输入值也是不相同的。这个特性称之为单向性,具有这种性质的哈希函数称为单向哈希函数。
● 确定性。对于同一个输入,无论用哈希函数计算多少次,都会得到相同的结果。
● 抗碰撞。哈希函数的输入值和输出值不是一一对应的关系,如果两个哈希值相同,两个输入值很可能是相同的,但也可能不同,输入值不同的情况称为“碰撞(collision)”。好的哈希算法很难找到两段内容不同的明文使得它们的哈希值一致(发生碰撞)。
● 抗篡改。对于任意一个输入值,哪怕是很小的改动,其哈希值的改变也会非常大,所以可以用哈希值判断内容是否被篡改。
由于哈希函数的多样性,不同哈希算法的特性也不尽相同。SHA相对于MD来说,防碰撞性更好,而MD的运行速度比SHA更快。常见的哈希算法差异对比如图2-3所示。

图2-3 常见哈希算法差异对比