Skip to content

Latest commit

 

History

History
28 lines (13 loc) · 1.57 KB

hash.md

File metadata and controls

28 lines (13 loc) · 1.57 KB

哈希算法

定义: 将任意长度的二进制值串映射为固定长度的二进制串,这个映射的规则就是哈希算法。哈希算法要满足几个要求:

  • 输入数据不管长短,输出都是固定的长度.
  • 对输入数据铭感,哪怕只是修改了一个bit,最后的哈希值也不一样
  • 哈希算法是单向的,就是说原始数据可以映射到哈希值,但是不能反向推导
  • 哈希冲突的概率要很小,劲量避免冲突
  • 执行效率要竟可能高效,不管是多长的文本,也能快速计算出哈希值。

哈希函数的应用

网络安全——数据的加密与签名,RSA介绍

  1. 哈希算法可以对大数据做信息摘要,通过一个较短的摘要来作为唯一标识,作为身份的象征。比如:我们可以对图库里面的所有图片做hash运算,然后将结果保存到散列表中。这样当我们想要判断某张图片是否在图库中,就可以通过hash值来判断了,非常高效.

  2. 哈希算法可以用来做数据校验,比如BT下载种子里面保存了源文件的哈希值,当用户下载完文件后,可以对下载后文件进行hash,然后比较判断是否文件下载成功或是否被篡改过。

  3. 散列函数也是哈希函数的一种应用。散列函数对算法冲突的要求比较低,同时也并不关心是否能反向解密,它更关心的是散列后的值是否能平均分布,并且这种计算要足够高效,不然就会影响散列表的性能

  4. hash + salt可以避免字典攻击