散列算法

什么是“散列算法/哈希算法”?

散列算法可以把[任意尺寸]的数据(原始数据)转变为一个[固定尺寸]的”小数据”(叫”散列值”或”摘要”)

摘要长度

对于某个具体的散列算法,得到的散列值总是固定的.散列值的长度又称”摘要长度”.
以下是常见散列算法的摘要长度:
CRC32 32比特(4字节)
MD5 128比特(16字节)
SHA1 160比特(20字节)

散列算法的特色

 1. 不可逆性
 从刚才的描述来看,散列似乎有点像压缩.但散列算法跟压缩算法是完全不同的,压缩速发是可逆的(可以把压缩后的数据再还原),而散列算法不可逆.
 还有人趁把散列算法称为”加密算法”,这也是不对的,因为加密算法是可逆的.而散列算法是不可逆的.
 2. 确定性
  通过某种散列算法,分别对两个原始数据计算散列值。如果算出来的散列值不同,那么可以 100% 肯定这两段数据是不同的——这就是“确定性”。
  但反过来,如果这两段数据的散列值相同,则只能说,这两段数据【非常可能】相同。所谓的“非常可能”,就是说,还达不到百分百。具体原因,请看下一节“散列函数的可靠性”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值