什麼是雜湊演算法?雜湊競猜遊戲開發原理詳解

nice1022發表於2022-04-08

什麼是雜湊演算法?

雜湊演算法的基本含義

雜湊是密碼學的基礎,理解雜湊是理解數字簽名和加密通訊等技術的必要前提。

雜湊,英文是 hash ,本來意思是”切碎並攪拌,有一種食物就叫 Hash ,就是把食材切碎並攪拌一下做成的。雜湊函式的運算結果就是雜湊值,通常簡稱為雜湊。雜湊函式有時候也翻譯做雜湊函式。

雜湊競猜遊戲開發,NFT雜湊生態系統定製,模式開發,歡迎隨時打擾小編薇:hkkf5566

什麼是雜湊演算法?雜湊競猜遊戲開發原理詳解

根據維基百科的定義,雜湊函式要做的事情是給一個任意大小的資料生成出一個固定長度的資料,作為它的對映。所謂對映就是一一對應。一個可靠的雜湊演算法要滿足三點。

第一是安全,給定資料 M 容易算出雜湊值 X ,而給定 X 不能算出 M ,或者說雜湊演算法應該是一個單向演算法。第二是獨一無二,兩個不同的資料,要擁有不相同的雜湊。第三是長度固定,給定一種雜湊演算法,不管輸入是多大的資料,輸出長度都是固定的。

但是仔細想一下,如果雜湊的長度是固定的,也就是取值範圍是有限的,而輸入資料的取值範圍是無限的,所以總會找到兩個不同的輸入擁有相同的雜湊。所以,雜湊函式的安全性肯定是個相對概念。如果出現了兩個不同輸入有相同輸出的情況,就叫碰撞,collision 。不同的雜湊演算法,雜湊位數越多,也就基本意味著安全級別越高,或者說它的”抗碰撞性就越好。

什麼是雜湊演算法?雜湊競猜遊戲開發原理詳解

再來說說雜湊函式的主要作用。雜湊的獨一無二性,保證瞭如果資料在儲存或者傳輸過程中有絲毫損壞,那麼它的雜湊就會變。雜湊函式的最常見的一個作用就是進行完整性校驗( Integrity Check ),完整的意思是資料無損壞。雜湊有很多不同的稱呼,有時候叫 Digest 摘要,有時候叫 Checksum 校驗值,有時候叫 Fingerprint 指紋,其實說的意思差不多,也就是說雜湊可以用來代表資料本身。

例如朋友給我傳遞一份資料,傳完之後,我有一份,他手裡也有一份,如果兩份資料的雜湊值是一樣的,那麼這兩份資料的內容就是一樣的,或者說可以認為傳遞過程中資料沒有損壞,我手裡拿到的資料是完整的。

所以說,雜湊函式的基本作用就是給大資料算出一個摘要性的長度固定的字串,也就是所謂的雜湊。雜湊的作用主要是進行完整性校驗。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70011332/viewspace-2886197/,如需轉載,請註明出處,否則將追究法律責任。

相關文章