為什麼md5是不可逆的?加鹽的目的是什麼?

2021-09-22 10:09:01 字數 578 閱讀 3972

但我們要儲存使用者名稱密碼的時候,顯然明文儲存是不太可取的,萬一你的資料庫的賬號密碼都被洩露了,那那些在你資料庫中的密碼不是都沒洩露出去了嗎?

所以我們要對密碼進行加密。

(網上有很多解釋都不太容易理解,下面是我自己的理解)

首先我們要知道md5是雜湊函式。不懂的可以查一下。雜湊就是雜湊函式。

舉乙個簡單的例子,我的雜湊函式是 x%8  那我 3%8和11%8得出來的值是一樣的。  它是多對一的。 所以當然是不可逆的。

你一那邊怎麼知道對應多那邊的哪個?但這只是乙個很簡單的例子,md5肯定要複雜很多。

另外經過md5加密後,得到的字串是固定的長度,不管你之前的字串有多長,這是md5裡面的對映關係決定的。

md5也可以被暴力破解,因為如果你的密碼和另外乙個的使用者的密碼是相同的,那你們加密過後的密文也是相同的。這可以通過加鹽來解決。

簡單來說:由原來的h(p)變成了h(p+salt),相當於雜湊函式h發生了變化,每次雜湊計算使用的salt是隨機的

h如果發生了改變,則已有的彩虹表資料就完全無法使用,必須針對特定的h重新生成,這樣就提高了破解的難度。

就是在你的密碼上加寫數值,在用md5加密。

為什麼md5是不安全的?

正確的說法為 不正確的使用md5是不安全的。cmd5這個 你可以把這個 理解為乙個超級大的彩虹表,你可以反向查詢hash對應的明文,當然只能查詢到在表裡面的資料了。生日,手機號,純數字的,如果有確定位數那就更好了,通過遍歷的方式,可以生成包含明文和hash值的一張超級大的表,通過查詢hash值,反向...

一種簡單的給MD5加鹽演算法

現在的md5密碼資料庫的資料量已經非常龐大了,大部分常用密碼都可以通過md5摘要反向查詢到密碼明文。為了防止內部人員 能夠接觸到資料庫或者資料庫備份檔案的人員 和外部入侵者通過md5反查密碼明文,更好地保護使用者的密碼和個人帳戶安全 乙個使用者可能會在多個系統中使用同樣的密碼,因此涉及到使用者在其他...

安全的Md5加密 兩次加密 加鹽

commons codec commons codec org.apache.commons commons lang3 3.6import org.apache.commons.codec.digest.digestutils import org.junit.test author yhq da...