当前位置: 首页 哈希算法

哈希算法

发布时间:2022-04-28 17:15:50

哈希算法,又称散列算法,就是指一种把任何长度的数据提炼出固定长度数字“指纹”的方法。

哈希算法有一个输入和一个输出,输入是任意长度的数据,在算法内部不管输入的数据是何种形式,都以单纯的比特序列来处理。

image.png

简单来说对于哈希算法,它看到的输入就是一串由0和1组成的二进制数。

哈希算法的输出就是最后的哈希值或者散列值,具体来说就是哈希算法把数据打乱混合,压缩成摘要,使得数据量变小,重新创建一个叫做哈希值的指纹。

只有完全一样的输入值才能得到完全一样的输出值;输入值与输出值之间没有规律,所以不能通过输出值算出输入值,要想找到特定的输出值,只能采用枚举法,不断更换输入值,直到找到满足条件的输出值。

这个HASH算法不是大学里数据结构课里那个HASH表的算法,而是密码学的基础。

比较常用的有MD5和SHA,最重要的两条性质,就是不可逆和无冲突。

所谓不可逆,就是当你知道x的HASH值,无法求出x;

所谓无冲突,就是当你知道x,无法求出一个y, 使x与y的HASH值相同。

这两种性质在数学上都是不成立的。

因为一个函数必然可逆,且由于HASH函数的值域有限,理论上会有无穷多个不同的原始值,它们的hash值都相同。

MD5和SHA做到的,是求逆和求冲突在计算上不可能,也就是正向计算很容易,而反向计算即使穷尽人类所有的计算资源都做不到。

免责声明:
本网站信息由网站用户提供,其内容和图片的真实性、合法性、版权由信息提供者负责,最终以政府部门登记备案的信息为准。本网站信息凡涉及面积单位均为建筑面积,本网站不声明或保证内容之正确性和可靠性,租赁或购买该物业时,请谨慎核查。
郑重提示:
请您在签订合同之前,切勿支付任何形式的费用,以免上当受骗。
咨询热线:134-1874-5414 公司邮箱:505857069@qq.com
微信小程序
官方公众号