為什麼md5是不安全的?

2021-10-22 09:59:31 字數 664 閱讀 8659

正確的說法為:不正確的使用md5是不安全的。

cmd5這個**,你可以把這個**理解為乙個超級大的彩虹表,你可以反向查詢hash對應的明文,當然只能查詢到在表裡面的資料了。

生日,手機號,純數字的,如果有確定位數那就更好了,通過遍歷的方式,可以生成包含明文和hash值的一張超級大的表,通過查詢hash值,反向查詢對應明文。

大約2023年左右,大部分**還是這樣的,例如搜尋關鍵字csdn600萬

資料庫中儲存md5雜湊之後的字元

這樣即使看到資料庫,也無法獲取到密碼原文,但真的是這樣的嗎?不要忘記彩虹表的存在。

md5(md5(password) + salt)
參考

HashMap為什麼是執行緒不安全的

hashmap底層是乙個entry陣列,當發生hash衝突的時候,hashmap是採用鍊錶的方式來解決的,在對應的陣列位置存放鍊錶的頭結點。對鍊錶而言,新加入的節點會從頭結點加入。我們來分析一下多執行緒訪問 1.在hashmap做put操作的時候會呼叫下面方法 新增entry。將 key value...

ArrayList為什麼是執行緒不安全的

提到執行緒安全我們應該第一時間想到鎖機制,當乙個執行緒訪問該類的某個資料時,進行保護,其他執行緒不能進行訪問直到該執行緒讀取完,其他執行緒才可使用,所以通過加鎖我們就可以保證乙個執行緒的安全性,list介面下面有兩個實現,乙個是arraylist,另外乙個是vector。從原始碼的角度來看,因為ve...

HashMap為什麼是執行緒不安全的

jdk1.7中hashmap的transfer函式如下 void transfer entry newtable,boolean rehash int i indexfor e.hash,newcapacity e.next newtable i newtable i e e next 此函式tra...