你:什么是hash(散列、哈希)运算?
我:简单来说,hash运算是个折中方案。
你:什么问题的折中方案呢?
我:证明你是你的折中方案。
你:...
我:哈哈哈,开个玩笑。如果你犯罪了,你最怕留下什么?
你:煲仔饭。
我:...
你:好吧,指纹,因为警察蜀黍会通过指纹找到我,并且判定我有罪。
我:嗯,同理。hash运算就是给文件打指纹。
你:为什么要给文件打指纹呢?
我:我也不知道,可能是想要做一些羞羞的事情吧。
你:看我的大白眼。(致敬前任)
我:好吧,假设我要发送给你一个文件,内容是abcdefg...。你虽然收到,但是你无法确认给你的文件到底对不对,有没有被中间人修改过。所以你就向我确认,然后我就再给发送你一遍:abcdefg...,然后你还是不确定收到的文件到底对不对,然后就继续问我。
我:这样就很傻,一直重复下去。一个折中的办法就是,给出文件,也给出它的指纹,假设上面的文件的指纹是a。我把文件发送给你,并且告诉全世界,我发送给你的文件的指纹是a,这样你收到文件后,就打个指纹一看,是a,那说明就对了。
你:为什么不直接把文件发送给全世界?
我:难道我的果照要给全世界么?
你:白眼白不白?
我:白。(致敬那谁)
你:为什么是折中方案呢?
我:诶(还有那谁),都一点了,先睡吧,下次再说。
没有下次了,文笔不好,突然觉得没意思,不写了,唉,把自己心情搞差了,我想对自己翻个白眼。