哈希函數(shù)可以被認(rèn)為與烘烤一條面包一樣。你從投入開(kāi)始(面粉,水,酵母等.)在應(yīng)用散列函數(shù)(混合+烘焙)之后,您將得到一個(gè)輸出:一條面包。
另一種方法是非常困難的-你不能把面包分成面粉、水、酵母-其中一些是在烘焙過(guò)程中丟失的,而且你永遠(yuǎn)無(wú)法確切地知道有多少水、面粉或酵母被用于一個(gè)特定的面包,因?yàn)檫@些信息被散列功能(也就是烤箱)破壞了。
理論上,許多不同的輸入變量將產(chǎn)生相同的面包(例如,2杯水和1茶匙酵母生產(chǎn)的面包與2.1杯水和0.9茶匙酵母完全相同),但如果給出其中的一個(gè),你就無(wú)法確切地知道是什么輸入組合產(chǎn)生了它。
另一方面,加密可以被看作是一個(gè)保險(xiǎn)箱。不管你把什么放進(jìn)去,只要你一開(kāi)始就擁有鎖著的鑰匙,你就會(huì)回來(lái)。這是一個(gè)對(duì)稱的操作。給定一個(gè)鍵和一些輸入,就會(huì)得到一個(gè)特定的輸出。給定輸出和相同的鍵,您將返回原始輸入。這是一張1:1的地圖。