什麼是加鹽密碼?

2021-10-14 13:19:05 字數 911 閱讀 8510

生活中,我們為了保證密碼的安全性,一般都不會使用明文儲存,而是要將明文進行加密,然後再進行儲存。假如我們的資料被拖庫,**被洩露,請求被劫持的情況下,也能保證使用者的密碼不被洩露,確保賬號的安全性。
md5資訊摘要演算法(英語:md5 message-digest algorithm),一種被廣泛使用的密碼雜湊函式,可以產生出乙個128位(16位元組)的雜湊值(hash value),用於確保資訊傳輸完整一致。md5由美國密碼學家羅納德·李維斯特(ronald linn rivest)設計。

md5這種不可逆的加密方法理論上很安全了,但是隨著彩虹表的出現,使得大量長度不夠長的密碼可以直接從彩虹表裡反推來。md5演算法無法防止碰撞(collision),也意味著它並不安全。

為了改進md5加密,機智的程式設計師就想,既然你可以反推出我的密碼,那麼只要我在我的短密碼上加上一段很長的字元,再計算md5,這樣你反推出原始密碼就會變得非常困難。這段長字元就是我們所稱的鹽(salt),通過這種方式加密的結果,我們稱為加鹽hash

在我們常用的雜湊函式中,sha-256、sha-512會比md5更安全,更難以破解。通過上面的加鹽雜湊運算,即使攻擊者拿到了最終結果,也很難反推出原始的密碼。不能反推,但可以正著推,假設攻擊者將 salt 值也拿到了,那麼他可以列舉遍歷所有 6 位數的簡單密碼,加鹽雜湊,計算出乙個結果對照表,從而破解出簡單的密碼。這就是通常所說的暴力破解。

為了應對暴力破解,我們使用了加鹽的慢雜湊。慢雜湊是指執行這個雜湊函式非常慢,這樣暴力破解需要列舉遍歷所有可能結果時,就需要花上非常非常長的時間。既然無法阻止你暴力破解,那就控制你的時間。

通過調整 cost 引數,可以調整該函式慢到什麼程度。假設讓 bcrypt 計算一次需要 0.5 秒,遍歷 6 位的簡單密碼,需要的時間為:((26 * 2 + 10)^6) / 2 秒,約 900 年。

使用者密碼加鹽

2012.2.25 參加了tup第20期 網際網路安全 洩密門事件給網際網路安全敲響警鐘,使得原來的使用者資訊加密方式受到很大威脅。原來的加密方式是相同的明文經過md5雜湊加密後的密文相同,當某站點受到拖庫攻擊後,黑客統計出使用頻率最高的前n個密文 這個比例可以達到很高 反向推算出明文,那麼這些使用...

密碼加鹽處理

salting password 對密碼進行一些混淆增加破解的難度 一般對密碼都不會是明文儲存,而是對密碼進行md5處理,增強反向解密難度。但這樣還是能可以找出破綻。如果使用者可以檢視資料庫,那麼他可以觀察到自己的密碼和別人的密碼加密後的結果都是一樣,那麼,就會知道別人用的和自己就是同乙個密碼。對於...

給你的密碼加鹽

最開始接觸web開發時,對於使用者表的密碼基本是明文儲存,如 username password zp1996 123456 zpy 123456789這種方式可以說很不安全,一旦資料庫洩漏,那麼所以得使用者資訊就會被洩漏。之前,國內普遍採用這種方式,造成了很多的事故,如csdn600萬使用者資訊洩...