What’s Hashing哈希算法(加密方式)?

Hashing哈希算法:單向算法的輸出(不能返回並反轉)。資訊輸入後並以數學算式的形式表達。

andylamgot
iHashing
2 min readMay 2, 2018

--

Source: Blockgeeks

例如,哈希算法的一個基本例子就是將特定資訊的所有字母值加起來。 (A = 1,B = 2,C = 3等):

Source: http://www.practicalnetworking.net

示例哈希算法的結果稱為資訊摘要(或校驗和或指紋)。 我們對原始資訊hello的示例哈希結果是52。如果有人要更改我們的原始資訊並通過相同的哈希算法處理它,結果將會不同:

Source: http://www.practicalnetworking.net

通過比較每次計算的資訊摘要,很容易確定我們的資訊被更改。

顯然,本例子中使用的哈希算法只作最簡單說明及有缺陷。 有很多單詞在通過示例算法進行處理時可能導致相同的摘要。 如果原始資訊已更改為cellt,那麼結果摘要仍然是52,並且我們不會意識到原始資訊已被更改。

實際上,合法哈希算法在被批准用於行業用途之前必須保持四種品質:

在數學上不可能從摘要中提取原始資訊:

應該不可能顛倒哈希算法並且恢復只知道得到的摘要的原始資訊。事實上,哈希有時被稱為單向加密:資訊可以被加密,但是不可能被解密。這是使用哈希算法中的單向函數完成的。
在某種程度上,我們的示例哈希算法滿足這種條件。不可能只知道由此產生的摘要52而得知你。主要是因為可能有成千上萬的資訊導致相同的摘要。

對原始信息的輕微改變會導致摘要發生劇烈變化:

任何細微的修改 — 即使像改變單個字符一樣小 — 到原始資訊應該大大改變計算的摘要。這有時被稱為雪崩效應。
這是可能的,因為哈希算法不只是一個計算。這是一系列的計算,反复迭代完成。因此,開始時的一個小小變化就會在結果摘要中產生一個指數級更大更大的變化。就像雪球在山下翻滾一樣,形成雪崩。

哈希算法的結果始終是相同的長度:

對於由此產生的摘要不提供關於原始資訊的任何提示或線索(包括其長度)至關重要。資訊的長度不應隨著資訊的長度增加而增大。
在我們的示例哈希算法中,單詞越長,所得摘要就越大,因為我們將越來越多的字母加在一起。然而,在行業認可的哈希算法中,哈希hello這個詞會產生與哈希整個國會圖書館相同大小的文摘。

構建生成給定摘要的資訊是不可行的:

使用我們的示例哈希算法,如果給定摘要52,生成可能是原始資訊的單詞列表不會太困難。這是該屬性試圖阻止的內容。
在一個適當的算法中,這應該是不可行的 — 在試圖找到每一個可能的資訊組合之前,你一直找不到匹配(也就是強制執行該算法)。但是,鑑於足夠大的文摘大小,這甚至變得不可行。

下面是一個常見的行業公認的哈希算法表:
算法摘要長度
MD5 128 Bits
SHA or SHA1 160 Bits
SHA256 256 Bits (Bitcoin)
SHA384 384 Bits
如上所述,這些哈希算法中的每一個都滿足四種密碼哈希算法性質。 它們之間的主要區別在於所得摘要的大小。與密碼一樣,通常認為導致更長摘要長度的哈希算法往往被認為更安全。

--

--

iHashing
iHashing

Published in iHashing

Empower SME with Blockchain Academy, Green Web3 Solutions & dAPP Development. ihashing.hk

andylamgot
andylamgot

Written by andylamgot

//Show ya how HKer shines in web3! 🌕ihashing.hk | bettermi.io | sigdao.io | Signum.network | 🇭🇰🇭🇲GTI Nominee