哈希函数,说的直白一点就是一种密码学中的思想,通过给哈希函数输入一个值产生一个哈希值,通过这个哈希值逆向得不到输入的值,就是这么简单,至于如何去实现,有好多种方式。关键的是要懂这种思想,人是思想的产物,区块链也是思想的产物,理解思想,才能更好的深入和创新技术。(作者:Share猿)
1.什么是哈希函数???(透过现象看本质)
哈希函数又称散列函数,杂凑函数,他是一个单向密码体制。说白了就是只有加密过程没有解密过程,哈希函数可以将任意长度的输入经过变化后得到固定长度的输出,但是我们不能通过固定长度的输出得到原始的输入,这就是是哈希函数的思想之所在。
理想的哈希函数可以针对不同的输入得到不同的输出,如果存在两个不同的消息得到了相同的哈希值,那我们称这是一个碰撞。
2.哈希函数特征(通过本质看特征)
1).压缩性:对于任意大小的输入x,哈希值的长度很小,并且是固定的长度。
2).易计算性:给一个值很快的就可以计算出来。
3).单向性:单向性也就是通过给定的哈希值得到原文是不可行的,求解哈希函数的逆很困难
4).抗碰撞性:理想的哈希函数是无碰撞的,但是实际的算法设计中很难做到,有两种抗碰撞性。
i. 弱抗碰撞性:对于给定的一个消息,要发现另一个消息使其碰撞在计算上不可行
ii. 强抗碰撞性:对于任意的一对不同的消息,使其碰撞在计算上不可行
4).高灵敏度:当一个输入位发生变化时,会有一半以上的输出位发生变化
3.哈希的应用(通过特征去应用)
1) 消息认证:在一个开放的网络中,需要提供一个用来验证消息完整性的服务和机制,即消息认证,这种服务的主要功能是确保收到的消息确实与发送的消息的来源都是真实有效
2) 数字签名:因为非对称加密算法速度较慢,所以在消息摘要上进行数字签名,在统计上可以认为与对文件本身进行数字签名是等效的
3) 口令的安全性:仅将口令的哈希值进行保存,进行口令校检的时候仅需比对哈希值即可,即使攻击者获取了口令的哈希值,也无法计算出口令
4) 数据完整性:比较熟悉的校检算法有奇偶校检和循环冗余校检码(CRC),这两种方式并没有抗数据篡改的能力,他们一定程度上能检测并纠正数据传输中的信道误码,但不能防止对数据的而已破坏。
小猿有一个梦想,可以把区块链通过直白的语言讲给每一个人听。从一篇博文开始!从一段视频开始!从一本书开始!如果您想让您的团队了解区块链!让您的公司了解区块链!让您的学生了解区块链!可以私信小猿或者加小猿微信预约小猿,带你们走进区块链的世界!如果是西安的朋友,小猿可以在业余时间到贵公司为大家讲解!只赚人气不赚钱!!哈哈!!
扫描以下公众号关注小猿↓↓↓↓↓↓↓↓
更多资讯请在简书、微博、今日头条、掘金、CSDN都可以通过搜索“Share猿”找到小猿哦!!!
网友评论