哈希算法也被称为散列,是一种能将任意数据映射为固定长度的数值(哈希值)的函数。

基本原理

哈希算法是通过对输入数据进行一系列复杂的数学运算来生成哈希值。无论数据是文本,图片,音频还是其他类型的数据,哈希算法都可以按照既定的规则去映射为固定长度的数值输出。比如说:常见的哈希算法 MD5 会将任意长度的数据转换为 128 位的哈希值,CRCSHA-1 等。

特点

  • 确定性:对于相同的输入数据,经过相同的哈希算法,最终得到的必然是相同的哈希值。

  • 高效性:哈希算法的运算速度通常会比较快。

  • 抗碰撞性:理想中的哈希算法应该是尽量避免不同的输入数据产生相同的哈希值,但是由于哈希值的长度有限,所以势必会造成一定的哈希冲突。但是好的哈希算法会将哈希冲突的概率降到极低。

  • 单向性:通过复杂的数学运算将输入的数据转换为哈希值。这种运算过程是单向的,意味着从哈希值很难(几乎不可能)推导出原始的输入数据。