雜湊(Hash)和雜湊樹(Merkle tree)

2021-10-25 14:41:17 字數 1227 閱讀 7958

雜湊函式(英語:hash function)又稱雜湊函式,是一種從任何一種資料中建立小的數字「指紋」的方法。雜湊函式把訊息或資料壓縮成摘要,使得資料量變小,將資料的格式固定下來。該函式將資料打亂混合,重新建立乙個叫做雜湊值/雜湊值(hash values,hash codes,hash sums,或hashes)的指紋。雜湊值通常用乙個短的隨機字母和數字組成的字串來代表。好的雜湊函式在輸入域中很少出現雜湊衝突。

雜湊函式都有如下乙個基本特性:如果兩個雜湊值是不相同的(根據同一函式),那麼這兩個雜湊值的原始輸入也是不相同的。這個特性是雜湊函式具有確定性的結果,具有這種性質的雜湊函式稱為單向雜湊函式。但另一方面,雜湊函式的輸入和輸出不是唯一對應關係的,如果兩個雜湊值相同,兩個輸入值很可能是相同的,但也可能不同,這種情況稱為「雜湊碰撞(collision)」,這通常是兩個不同長度的輸入值,刻意計算出相同的輸出值。

輸入一些資料計算出雜湊值,然後部分改變輸入值,乙個具有強混淆特性的雜湊函式會產生乙個完全不同的雜湊值。這一特點在區塊鏈中被使用。要生成當前區塊的加密雜湊,需要使用上乙個區塊的加密雜湊值。更改乙個區塊,下乙個區塊的雜湊值就需要重新計算,並導致之後所有的區塊都需要重新計算一次。因此,乙個個區塊就這樣串聯起來,形成了一條鏈。這也就是區塊鏈當中「鏈」的由來。

乙個設計優秀的加密雜湊函式是乙個「單向」操作:對於給定的雜湊值,沒有實用的方法可以計算出乙個原始輸入,也就是說很難偽造。利用這一特點,發信人通過將原訊息和雜湊值一起傳送,可保證資料的真實和完整。

雜湊樹(hash tree;merkle tree),在密碼學及電腦科學中是一種樹形資料結構,每個葉節點均以資料塊的雜湊作為標籤,而除了葉節點以外的節點則以其子節點標籤的加密雜湊作為標籤 。雜湊樹能夠高效、安全地驗證大型資料結構的內容。雜湊樹的概念由瑞夫·墨克於 1979 年申請專利,故亦稱墨克樹(merkle tree)。

雜湊樹的頂部為頂部雜湊(top hash),亦稱根雜湊(root hash)或主雜湊(master hash)。只要任一葉節點有變化,根雜湊都會變。在位元幣區塊裡,所有交易都按照merkle tree的格式組織起來,再跟區塊頭里的hashmerkletreeroot對應起來,就可以保證本區塊交易資訊的不可篡改。

Hash和雜湊 雜湊 表

hash又稱為雜湊,是把任意長度的輸入 又叫做預對映pre image 通過雜湊演算法變成固定長度的輸出,該輸出就是雜湊值。hash演算法還有乙個特點,就是很難找到逆向規律。在同一函式下,如果兩個雜湊值是不相同的,那麼這兩個雜湊值的原始輸入也是不同的。hash演算法又被稱為雜湊演算法。雖然被稱為演算...

Hash 雜湊 雜湊

hash 一種用於查詢的資料結構 雜湊查詢的前提是已經一定的規則方法建好了雜湊表。基本思想是 關鍵字 位址轉換法 以資料物件的關鍵字為自變數,通過乙個確定的函式關係h,計算出對應的函式值h key 把這個值解釋為資料物件的儲存位址,並按此存放,即儲存位置 h key 關鍵 1.構造好的雜湊函式 2....

雜湊(hash 雜湊表)

可以認為雜湊有著陣列的思想,它將所有的資料段拼成乙個陣列 順序表 進行儲存,通過雜湊函式,可以基本上以o 1 的時間複雜度來查詢和儲存資料。通過資料段中的唯一關鍵字 key 經過某種演算法,得出此資料段在整個雜湊陣列 順序表 中的的下標,然後直接取元素即可。有資料結構如下 資料段 key,value...