编程语言
首页 > 编程语言> > 哈希算法简单理解

哈希算法简单理解

作者:互联网

举个栗子帮助理解

 

▌场景:小星与阿呆即时聊天中

 

阿呆:小星,今天来我家玩,来的路上,有一家披萨店,很好吃,顺便带一点哈。

小星:哦,要不你来我家玩吧,你顺便带上披萨。

阿呆:小星,你竟然都这么说了,看来只能抛硬币解决了。

小星:丫的,这个怎么抛,我怎么知道你有没有搞鬼。

阿呆:嗯,那到也是,要不这样。

 

1对结果加密

阿呆:我心中想一个数,假设为A,然后A在乘以一个数B,得到结果C。A是我的密钥,我把结果C告诉你。你来猜A是奇数还是偶数,猜中了,算你赢。

 

小星:这不行,如果你告诉我C是12,我猜A是奇数,你可以说A是4,B是3。我猜A是偶数,你可以说A是3,B是4。要不你告诉我C是多少的时候,也告诉我B是多少。

 

阿呆:那这不行,告诉你C和B,不等于告诉你A是多少了,还猜个屁。不行得换个方式。

 

2不可逆加密

阿呆:小星,你看这样可以不,我想一个A,经过下面的过程:

 

1.A+123=B

2.B^2=C

3.取C中第2~4位数,组成一个3位数D

4.D/12的结果求余数,得到E

 

阿呆:我把E和上述计算方式都告诉你,你猜A是奇数还是偶数,然后我告诉你A是多少,你可以按上述的计算过程来验证我是否有说谎。

 

小星:嗯,我想想,假如阿呆你想的A为5,那么:

5+123=128

128^2=16384

D=638

E=638mod12=53      (mod表示除法的求余数)

 

小星:咦,厉害了,一个A值对应一个唯一的E值,根据E还推算不出来A。你太贱了,好吧,这个算公平,谁撒谎都能被识别出来。

 

小星:阿呆,你出题吧 ……

 

这种丢掉一部分信息的加密方式称为“单向加密”,也叫哈希算法。

标签:加密,奇数,披萨,偶数,算法,理解,告诉,哈希,阿呆
来源: https://www.cnblogs.com/bsxc2/p/15402788.html