hash值是谁发明的(hash算法谁发明的)
今天给各位分享hash值是谁发明的的知识,其中也会对hash算法谁发明的进行解释,如果未能解决您的问答,可在评论区留言!
文章目录:
朋友老说哈希算法,请问到底什么是哈希算法?
首先,一般哈希算法不是大学里数据结构课里那个HASH表的算法。一般哈希算法是密码学的基础,比较常用的有MD5和SHA,最重要的两条性质,就是不可逆和无冲突。
所谓不可逆,就是当你知道x的HASH值,无法求出x;
所谓无冲突,就是当你知道x,无法求出一个y, 使x与y的HASH值相同。
这两条性质在数学上都是不成立的。因为一个函数必然可逆,且由于HASH函数的值域有限,理论上会有无穷多个不同的原始值,它们的hash值都相同。MD5和SHA做到的,是求逆和求冲突在计算上不可能,也就是正向计算很容易,而反向计算即使穷尽人类所有的计算资源都做不到。
我觉得密码学的几个算法(HASH、对称加密、公私钥)是计算机科学领域最伟大的发明之一,它授予了弱小的个人在强权面前信息的安全(而且是绝对的安全)。举个例子,只要你一直使用https与国外站点通讯,并注意对方的公钥没有被篡改,G**W可以断开你的连接,但它永远不可能知道你们的传输内容是什么。
顺便说一下,王小云教授曾经成功制造出MD5的碰撞,即md5(a) = md5(b)。这样的碰撞只能随机生成,并不能根据一个已知的a求出b(即并没有破坏MD5的无冲突特性)。但这已经让他声名大噪了。
哈希算法的来源?发明者?
哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进哈希函数是一个数学方程式,它可用文本(如电子邮件信息)来生成称为信息摘要的代码。著名的哈希函数如:MD4,MD5,SHS。
用于数字鉴别的哈希函数必须有特定的属性,使它在密码使用方面有足够的安全性。尤其是,下面的内容一定不能被发现:
用来哈希出特定值的文本。也就是说,如果你知道信息摘要,你应该不能解出信息的内容。
用来哈希出相同值的两个不同的信息。
如果能够发现用来哈希出特定值的某个信息,攻击者就能够用假信息替代经过签名的真信息。而有些人也能够声称自己实际上签名了哈希出相同值的一个不同的信息,以此虚假地否认这条信息。这样就破坏了数字签名的无法否认的属性。
如果能够发现用来哈希出相同值的两个不同的信息,攻击者就能够给一个信息签名,这个信息和另一个信息都可以哈希出相同值,但二者的意思却是完全不同。
愧对楼主了 ,。。没查出来源。
起源人为 Hash
hash函数创始人
发明者不知道。
发明的目的是提高海量数据的查找速度。
简单问题举例:
数据表中有N个无序的字符串(例如:英文人名),
给你一个字符串,请迅速找到它在数据表中的序号。
最笨的方法是逐个比较的方式来查找。查找时间是O(N),简单说最后的
情况是比较N次。
hash 表能够加快查找速度。使用hash表首先要申请一个定长的指针数组。
通过在建立数据表时通过特定的计算公式(hash散列函数)计算出每个字符串对应的一个数值。而后把此数值作为数组下标,把此字符串在数据表的序号保存在此数组元素中。(可以扩展到保存一个结构体指针)
将来想查找某字符串对应位置时,只需要通过hash散列函数计算出字符串对应的值就可以直接知道此字符串的序号等信息了。这样查找时间是O(1)了。因为不需要查找了,知道数组下标就能访问数组相应元素了,而元素中保存的就是序号等信息。
关于hash值是谁发明的和hash算法谁发明的的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。
评论