为什么哈希算法可以安全使用?

Kel*_*ang 2 security algorithm hash

今天的哈希算法被广泛用于检查数据的完整性,但为什么它们可以安全使用?256位散列算法生成给定数据的256位表示.但是,256位散列只有2 512个变体.但1 KB的数据有2 8192种不同的变化.从数学上讲,世界上每一块数据都不可能有不同的哈希值.那么哈希算法为何安全?

小智 6

哈希算法被认为是安全的原因是由于以下原因:

  1. 它们是不可逆转的.您无法通过反向设计输出哈希值来获取输入数据.
  2. 输入中的微小变化将产生大不相同的散列值.即"hello"vs"hellp"将产生完全不同的值.

使用数据完整性进行的假设是,输入数据的良好副本和输入数据的恶意(恶意)副本之间的大部分输入将是相同的.数据的微小变化将使哈希值完全不同.因此,如果我尝试注入任何恶意代码或数据,那么小的更改将完全抛弃哈希的值.当使用已知的哈希值进行比较时,如果数据已被修改或损坏,则可以轻松确定.

你是正确的,因为在无数个数据集之间存在碰撞的风险,但是当你比较两个非常相似的数据集时,可以合理地假设这两个几乎等价的数据集的哈希值完全不同.