常用的單向哈希演算法
① 哈希演算法
1.通過哈希值不能反向推導出原始數據(所以哈希演算法也叫單向哈希演算法)
2.對於輸入數據非常敏感,及時更改了一個比特位,哈希值也大不相同
3.散列沖突的概率要小,
4.執行效率要高,及時很長的文本,也能盡快計算出哈希值
MD5的結果是128位 --> 32個16進制串
最常用於加密的哈希演算法是 MD5(MD5 Message-Digest Algorithm,MD5 消息摘要演算法)和 SHA(Secure Hash Algorithm,安全散列演算法)
通過拿到加密後的密文然後再字典表(彩虹表)中比對,找到相同的密文則可以知道其明文。
可以通過在用戶的密碼後加鹽(加入一個字元串)然後加密存儲起來。
區塊鏈是一塊塊區塊組成的,每個區塊分為兩部分:區塊頭和區塊體。
區塊頭保存著 自己區塊體 和 上一個區塊頭 的哈希值。
因為這種鏈式關系和哈希值的唯一性,只要區塊鏈上任意一個區塊被修改過,後面所有區塊保存的哈希值就不對了。
區塊鏈使用的是 SHA256 哈希演算法,計算哈希值非常耗時,如果要篡改一個區塊,就必須重新計算該區塊後面所有的區塊的哈希值,短時間內幾乎不可能做到。
假設我們有 k 個機器,數據的哈希值的范圍是 [0, MAX]。我們將整個范圍劃分成 m 個小區間(m 遠大於 k),每個機器負責 m/k 個小區間。當有新機器加入的時候,我們就將某幾個小區間的數據,從原來的機器中搬移到新的機器中。這樣,既不用全部重新哈希、搬移數據,也保持了各個機器上數據數量的均衡。
② 哈希演算法的計算方法
用來產生一些數據片段(例如消息或會話項)的哈希值的演算法。使用好的哈希演算法,在輸入數據中所做的更改就可以更改結果哈希值中的所有位;因此,哈希對於檢測數據對象(例如消息)中的修改很有用。此外,好的哈希演算法使得構造兩個相互獨立且具有相同哈希的輸入不能通過計算方法實現。典型的哈希演算法包括 MD2、MD4、MD5 和 SHA-1。哈希演算法也稱為「哈希函數」。
另請參閱: 基於哈希的消息驗證模式 (HMAC), MD2, MD4, MD5,消息摘要, 安全哈希演算法 (SHA-1)
MD5一種符合工業標準的單向 128 位哈希方案,由 RSA Data Security, Inc. 開發。 各種「點對點協議(PPP)」供應商都將它用於加密的身份驗證。哈希方案是一種以結果唯一並且不能返回到其原始格式的方式來轉換數據(如密碼)的方法。質詢握手身份驗證協議(CHAP) 使用質詢響應並在響應時使用單向 MD5哈希法。按照此方式,您無須通過網路發送密碼就可以向伺服器證明您知道密碼。
質詢握手身份驗證協議(CHAP)「點對點協議(PPP)」連接的一種質詢響應驗證協議,在 RFC 1994 中有所描述。 該協議使用業界標准 MD5哈希演算法來哈希質詢串(由身份驗證伺服器所發布)和響應中的用戶密碼的組合。
點對點協議
用點對點鏈接來傳送多協議數據報的行業標准協議套件。RFC 1661 中有關於 PPP 的文檔。
另請參閱: 壓縮控制協議 (CCP),遠程訪問,徵求意見文檔 (RFC),傳輸控制協議/Internet 協議 (TCP/IP),自主隧道。