先用md5,再用sha1,這樣密碼會安全一點嗎?

時間 2021-05-11 21:34:30

1樓:5275

sha1(md5('pwd')) ≈ md5(md5('pwd')) ≈md5*1000('pwd') ≈ bcrypt

推薦 md5('pwd' + [random salt])

2樓:Jin Hefeng

在我看來MD5根本不是加密,只是從真實密碼到輸出的象之間的一種確定的對映,SHA1其實也是同乙個道理。加密的邏輯只是將加密函式從 md5()或sha1()修改成了 sha1(md5())而已

3樓:脫氧核醣

我一般把賬號和密碼.連線起來md5一次然後隨機打亂,再隨機擷取6位數以上放到臨時變數$token。再把原$_post[password].

$token隨機擷取的token一起再加密一次然後存入資料庫,表建立多一列名token存放擷取的$token。各位大牛不要笑我……這樣先查使用者名稱,再對比密碼

4樓:eechen

PHP給使用者密碼加鹽後儲存到資料庫:

鹽: base64_encode(sha1(openssl_random_pseudo_bytes(32), true))

密碼雜湊: base64_encode(hash('sha256', ('user_password' . $salt), true))

鹽長度為28個字元: `salt` char(28)

密碼雜湊長度為44個字元: `password` char(44)

鹽($salt)的生成如果要更隨機和唯一,可以考慮這樣:

function io_rand()

這個鹽在使用者註冊時,或者修改密碼時重新生成.

這個鹽在我的程式中還參與到使用者身份cookie的驗證.

也就是用於識別使用者身份的cookie裡包含使用者編號和使用者的鹽.

驗證時就是根據使用者編號查詢使用者資料庫裡的鹽,再拿來跟cookie裡的鹽對比,一致則通過驗證.

為了避免使用者的鹽洩露,可以對cookie進行一次aes的加密,伺服器拿到cookie後解密並驗證鹽.

/** * AES加密

*/function io_aes_encrypt($str, $key = IO_AES_KEY, $iv = IO_AES_IV) {

return base64_encodeopenssl_encryptstr, 'aes-128-cbc'base64_decode($key), OPENSSL_RAW_DATAbase64_decode($ivAES解密

*/function io_aes_decrypt($str, $key = IO_AES_KEY, $iv = IO_AES_IV) {

return openssl_decryptbase64_decode($str), 'aes-128-cbc'base64_decode($key), OPENSSL_RAW_DATAbase64_decode($iv

另外,你甚至還可以先在瀏覽器端使用CryptoJS.MD5(password.toString()).

toString()雜湊密碼後傳給伺服器處理,保證伺服器對使用者密碼明文的不知情.

需要的話,使用https加密傳輸避免通訊資料被竊聽和修改.

5樓:

當別人已經知道使用者名稱,想要暴力破解某一賬號時,加salt根本沒用,因為他的每一次嘗試也會被你自動加鹽.

應該通過驗證碼增加延時,或者ip限制訪問頻次來限制.

6樓:Sven

MD5+salt 防止了原有的彩虹表撞庫,但是隨著計算機效能的提高,演算法複雜度不夠,那麼就可以蠻力撞庫破解了

我覺得如果安全要求高的話,需要使用sha256+salt的演算法了這個是一般資料庫儲存密碼的場景

關於這些演算法對效能的消耗,我也在找資料。。。原來密碼都是md5的沒有鹽很不安全,在想怎麼解決

7樓:戴威

你可以直接用SHA-2。

但是還是要說一句,像MD5、SHA1這種都是雜湊演算法,而不是加密演算法。因為編碼後的結果是不可逆的,除非你用窮舉。

8樓:

加鹽是為了防止攻擊者直接用預先計算好 md5 的字典與密文進行匹配查詢明文,因為如果使用者密碼是字典中的條目,新增隨機字尾之後幾乎不會出現在字典中,攻擊者無從構建彩虹表。

題主的做法,仍然可以被彩虹表攻擊。攻擊者只要知道你的演算法,對先前的單次 md5 構建的彩虹表再做一次 sha 構建新錶就好。如果明文本身是表中條目,這樣增加的攻擊難度非常有限。

加密演算法MD5和SHA1有什麼區別?哪種更好?

cdh1076 sha1比md5好一點點,但好的非常有限 大約破解sha1的難度比破解md5的難度多十分之一 另外,從實際上,破解md5的工具遠遠比sha1的多,用sha1可以一定程度上防範指令碼小子 ichenhanlin 這倆嚴格意義上算密碼演算法,不算加密演算法。SHA1不太清楚,但是MD5已...

檔案校驗中md5 sha 1 sha 256 sha 512 哪種校驗方式比較快呢?

首先Duplicate Cleaner 這個軟體確實好用,我也經常用它去重 精簡資料。簡單判斷MD5 SHA 1 SHA 256 SHA 512這幾種校驗演算法,第一反應當然是校驗值越長的越慢。我們先了解一下什麼是演算法,資料摘要演算法是密碼學演算法中非常重要的乙個分支,它通過對所有資料提取指紋資訊...

md5會有重複的可能嗎?

sharyuke md5的個數,為什麼你們會覺得是26 32 1.9 10 45?難道不是 36 32 6.33 10 49 是我理解有誤嗎? 廣鍋鍋 看了這麼多答案,MD5確實會有重複的。在此基礎上,有乙個有趣的現象 首先有乙個MD5 M1,對M1再用MD5轉換一下得到M2,對M2再用MD5轉換一...