白话文说哈希Hash是啥?

Hash,俗称哈希,也叫散列,是一种将任意长度的数据压缩到某一固定长度的数据摘要的算法。

Hash算法具有几个重要的特性

1・不可逆性(从Hash值反推出原消息是不可能的)
2・抗冲突型(指定消息M1,不存在另一个消息M2,使得Hash(M1)=Hash(M2))
3・分布均匀性(Hash算法的结果是均匀分布的)


常见的Hash算法

MD5 (Message-Digest Algorithm 5)

128bit的报文摘要(密文)(16字节)(1字符4bit,共32字符)

SHA-1

160bit的报文摘要(密文)(20字节)(1字符4bit,共40字符)

SHA-1主要有两种用途

一个是加密,一个是数据完整性校验

最新资料显示,理论上对SHA-1进行哈希碰撞的攻击可以在2^51(2的51次方=2251799813685248)左右的次数内实现
由于SHA-1不是足够的安全,现在美国的很多政府部门都开始不采用SHA-1而采用SHA-2(目前还没有发现其hash碰撞的存在)

Linux kernel开创者和Git的开发者——Linus说,Git使用了SHA-1并非是为了安全性,而是为了数据的完整性;
它可以保证,在很多年后,你重新checkout某个commit时,一定是它多年前的当时的状态,完全一摸一样,完全值得信任。

SHA-2家族

SHA-224、SHA-256、SHA-384和SHA-512等,分别产生224位、256位、384位和512位的散列结果。

SHA-3家族

SHA-3是NIST于2015年正式发布的全新哈希标准,由Keccak算法演变而来,设计初衷是为了替代因潜在安全隐患而受到质疑的SHA-2系列。SHA-3同样提供了多种散列长度,包括SHA3-224、SHA3-256、SHA3-384和SHA3-512。


相关名词解释

SHA(secure hash algorithm)

又叫:hash values / hash codes / hash sums / checksums / simply hashes

加密哈希函数(cryptographic hash function)

A hash function is any algorithm or subroutine that maps large data sets of variable length, called keys, to smaller data sets of a fixed length;

哈希碰撞(hash collision)

不同的两块数据有相同的hash值

雪崩效应(Avalanche effect)

在加密中,源数据一点儿的差异将会得到完全不同的加密后的密码,这种现象叫做“雪崩效应”

参考

git中保证文件完整性的SHA-1值(commit ID)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值