哈希函數接受任意長度的輸入字串(數字,字母,媒體檔)並將其轉換為固定長度。固定位長度可以變化(如32位或64位或128位或256位),具體取決於所使用的散列函數。固定長度輸出稱為散列。此哈希也是哈希演算法的加密副產品。這如下所示。
哈希演算法具有以下特性:
- 它產生一個唯一的輸出(或哈希)。
- 它是一個單向的函數。
在像比特幣這樣的加密貨幣的情況中,區塊鏈在其共識機制中使用這種加密哈希函數的屬性。加密散列是一定數量的數據的摘要或數字指紋。在加密散列函數中,事務被視為輸入並通過散列演算法運行,該演算法提供固定大小的輸出。
SHA-256
比特幣的區塊鏈使用SHA-256(安全哈希演算法)哈希演算法。2001年,SHA-256 Hashing演算法由美國國家安全局(NSA)開發。
散列過程如何工作?
對於這個哈希函數,我們將使用由Anders Brownworth開發的程式。該程式可在以下鏈接中找到。
如果在數據部分中輸入任何內容,在哈希部分中都有一個等效的加密哈希。
例如,在數據類型部分輸入:這是一個NB的區塊鏈教學
它會生成相應的Hash,如下所示:
現在,如果使用兩個文本:"This is a great tutorial."
和"this is a great tutorial."
。
將會得到相應的哈希:
4bc35380792eb7884df411ade1fa5fc3e82ab2da76f76dc83e1baecf48d60018
在上面,可以看到只將第一個字元大小寫句子從大寫“T”改為小“t”,它將改變整個哈希值。
注意:如果在數據部分再次寫入相同的文本,它將始終提供相同的輸出。
由於Hash函數是單向函數,因此無法從生成的哈希中獲取整個文本。這與傳統的加密函數(如加密)不同,可以使用密鑰加密某些內容,使用解密功能可以將郵件解密為原始格式。