密码学工具3——单向散列函数(HASH最全版)

单向散列函数

单向散列函数,one-way hash function,是用于解决确认消息和文件完整性和一致性,应用于消息认证场景。单向散列函数可以根据消息的内容计算出散列值,散列值就可以被用来检查消息的完整性。

单向散列函数也称消息摘要函数(message digest function)、哈希函数或者杂凑函数。单向散列函数的输入消息称为原像(pre-image),单向散列函数的输出称为消息摘要(message digest)或者指纹(fingerprint)。

经单向散列函数计算出的散列值长度是和原消息长度是无关的,无论多大的消息块经过单向散列函数计算出的散列值都是固定长度的,如常见的SHA-256单向散列函数,计算得到的散列值永远是256比特。

单向散列函数性质

输出长度固定

单向散列函数的输入值必须可以是任意长度的数据,且输出长度必须短且固定。

计算快速

单向散列函数的计算速度快,可以快速得到散列值。

抗碰撞性

为了确认消息的完整性,消息中即使是由1比特的改变,也必须产生不同的散列值。若两个消息产生的散列值一样,则称为碰撞(collision)。如果使用单向散列函数进行完整性检查,需要确保不可认为发现碰撞。密码技术使用的单向散列函数。都需要具备抗碰撞性。

单向性

单向性是指无法通过散列值反算出消息的性质。单向散列函数必须具备单向性,这个特性用于避免使用散列值被反解算出源消息。单向散列函数不是加密算法,所以无法进行解密。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值