哈希算法
哈希算法又称摘要算法, 作用是:对任意一组输入数据进行计算,得到一个固定长度的输出摘要
特点:
- 相同输入一定得到相同输出
- 不同输入大概率得到不同输出
好的hash算法应满足:
- hash碰撞改了尽可能低
- 不能猜测输出
常用的又: MD5
, SHA-1
, SHA-256
用途:
比如,从网上下载文件时,如何判断下载的软件是原始的未经篡改的?
计算一下本地文件的哈希值,与官网对比,相同即说明文件正确,因为相同输入得到相同输出
比如,密码不存储明文,当用户输入明文后,计算其哈希值,与数据库里存储的暗文进行对比,一致则密码正确
缺点:
如果明文容易被猜出,容易被“彩虹表”攻击