三九宝宝网宝宝百科宝宝知识

什么是哈希算法

02月03日 编辑 39baobao.com

[如何加强学生对算法和算理的理解]您好,算理和算法既有联系,又有区别.算理主要回答“为什么这样算”的问题;算法是主要解决“怎样计算”的问题.算理是计算的依据,是算法的基础,而算法则是依据算理提炼出来的计算方...+阅读

举个更形象点的例子。

这东西其实就像字典(其实就是)。你给出来的字符串是一个单词,他在字典里面所属的条目是A-Z其中一个字母。不管你给的单词有多长,他总属于字典中某一个目录下(也就是首字母。。)。你现在有两个单词,你不知道他们都是什么,但是你知道一个在“A”里面一个在“E”里面。这样你就知道这俩肯定不是同样的单词。不过由于每个条目下都有一大堆的单词,所以你还是不知道这两个单词具体是什么。

当然也有很大的概率两个单词都在E里面,这种情况叫做一种“碰撞”。两个不同的东西生成了同样的结果。拿到360的例子上来说就是,你开了家网站,起了个特别诡异的名字,用奇虎的哈希算法算出来的结果和某个不良网站一样。那么你的网站就被当不良网站屏蔽掉了。

一个好的哈希算法要保证尽可能的少产生碰撞。还是说你之前查字典的例子。这次你把字典拆了。给里面每个首字母下面又加了26个条目,分别是A-Z,里面装着以这些当结尾的单词。这样你随便挑两个单词是一个坑里出来的概率就小多了。

然后突然你有一天觉醒了。感觉就差俩单词太费劲了。所以你买了本空字典,把天下单词挨个试一遍,终于把所有目录里面都填满了。然后你以后找单词就很方便了。别人给你一个单词首字母是A,你就随便从A里面找个应附上。虽然不知道是不是他说的那个,但至少看起来是一个坑里出来的就过关了。这字典就叫彩虹表。这东西写起来比较耗时。没准你算了二十年发现试过的那些单词首字母全是XYZ,但是人家每次给的都是ETA,那之前的活都白干了。

虽然这种方法得到的不是原始记录,而仅仅是与之具有相同特征的记录。而且有这个特征的记录可能有一大堆。有的时候你碰巧拿到的就是原来的那个,但大多数拿到的都是垃圾。如果你的表很全的话,那很有可能一堆记录里面有个和原来的那条一模一样的。这时候你可以根据别的什么信息猜猜找的是什么。比如你俩正打架,然后找出来他给你的单词是F开头的,那基本上就能猜出来了。

这就是哈希算法。一个好的哈希算法仅仅知道结果的话是极难反算出原始数据来的,特别是有意义的原始数据。

以下为关联文档:

如何寻求算理与算法的平衡计算的算理是指计算的理论依据,通俗地讲就是计算的道理。算理一般由数学概念、定律、性质等构成,用来说明计算过程的合理性和科学性。计算的算法是计算的基本程序或方法,是算理...

双色球必中六红算法必中六红算法可以在我经常去的地方学(blpn.run)-----钛锅的最大优点就是安全健康无毒,不会有重金属析出,用钛锅炒菜长期使用zd也不会对身体健康产生任何影响。一般的钛锅缺点导...

双色球算法必中六红2016 77.一等奖:投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖; 二等奖:投注号码与当期开奖号码中的6个红色球号码相同,即中奖; 三等奖:投注号码与当期开奖号码中的任意5个红色球号...

flash农历倒计时算法间的文字,或者是背景(以下的帧都是关键帧) 第二层第一帧新建一个输入文本,变量名:shuru 第一层第一帧as:stop();//第一帧暂停,输入时间 第二层第二帧:var love = getTimer();//设置love...

怎样对算法多样化进行教学随着课堂教学改革的深化和《数学课程标准》出台,对计算教学提出了新要求,“应重视口算,加强估算,提倡算法多样化”的理念,给计算教学的课堂带来了新的活力,在不少老师的课堂上,算法...

求教一个偏微分方程组的数值算法你这个其实就是Advection-reaction方程组 du/dt+a*du/dx=-lamda*u 把A(x,t+k)用泰勒展开,利用上式把t的偏导代换为x的偏导就能得到一个递推的公式了。 我做过单变量的,多变量...

EXCEL中计算复利算法日息率为百分之六即6%,太虚高了? ---------------------------------------------------------------------------------------------- 若假设日息率为 0.06%,则年利率(0.06%*30...

Hash算法原理哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。 哈希算法用来产生一些数据片段(例如消息或会话项)的哈希值的算法。使用好的哈希...

什么是哈希hash算法*nix系系统:ES(Unix) 例子: IvS7aeT4NzQPM 说明:Linux或者其他linux内核系统中 长度: 13 个字符 描述:第1、2位为salt,例子中的'Iv'位salt,后面的为hash值 系统:MD5(Unix) 例子:$1$12...

推荐阅读
图文推荐