采取一些措施來保護用戶的密碼,即使網站被攻破的情況下也不會造成較大的危害。如果你還在存儲用戶密碼的MD5,那可真的有點弱了。保護密碼最好的的方式就是使用帶鹽的密碼hash。對密碼進行hash操作是一件很簡單的事情。但是密碼經過hash之后并不是絕對的安全通過一些手法還是可以破解的比如字典和暴力破解攻擊、查表破解、反向查表破解、彩虹表、Adding Salt等這些方法也是有一定幾率破擊。
儲存過程如下:
使用 CSPRNG 生成足夠長的隨機鹽值。
將鹽值混入密碼,并使用標準的密碼哈希函數進行加密,如Argon2、 bcrypt 、 scrypt 或 PBKDF2 。
將鹽值和對應的哈希值一起存入用戶數據庫。
校驗
回答所涉及的環境:聯想天逸510S、Windows 10。
每個用戶的每一個密碼都要使用獨一無二的鹽值。用戶每次創建帳號或更改密碼時,密碼應采用一個新的隨機鹽值。
永遠不要重復使用某個鹽值。這個鹽值也應該足夠長,以使有足夠多的鹽值能用于哈希加密。一個經驗規則是,鹽值至少要跟哈希函數的輸出一樣長。該鹽應和密碼哈希一起存儲在用戶帳號表中。
存儲密碼的步驟:
校驗密碼的步驟:
從數據庫檢索出用戶的鹽值和對應的哈希值。
將鹽值混入用戶輸入的密碼,并且使用通用的哈希函數進行加密。
比較上一步的結果,是否和數據庫存儲的哈希值相同。如果它們相同,則表明密碼是正確的;否則,該密碼錯誤。
采取一些措施來保護用戶的密碼,即使網站被攻破的情況下也不會造成較大的危害。如果你還在存儲用戶密碼的MD5,那可真的有點弱了。保護密碼最好的的方式就是使用帶鹽的密碼hash。對密碼進行hash操作是一件很簡單的事情。但是密碼經過hash之后并不是絕對的安全通過一些手法還是可以破解的比如字典和暴力破解攻擊、查表破解、反向查表破解、彩虹表、Adding Salt等這些方法也是有一定幾率破擊。
儲存過程如下:
使用 CSPRNG 生成足夠長的隨機鹽值。
將鹽值混入密碼,并使用標準的密碼哈希函數進行加密,如Argon2、 bcrypt 、 scrypt 或 PBKDF2 。
將鹽值和對應的哈希值一起存入用戶數據庫。
校驗
回答所涉及的環境:聯想天逸510S、Windows 10。
每個用戶的每一個密碼都要使用獨一無二的鹽值。用戶每次創建帳號或更改密碼時,密碼應采用一個新的隨機鹽值。
永遠不要重復使用某個鹽值。這個鹽值也應該足夠長,以使有足夠多的鹽值能用于哈希加密。一個經驗規則是,鹽值至少要跟哈希函數的輸出一樣長。該鹽應和密碼哈希一起存儲在用戶帳號表中。
存儲密碼的步驟:
使用 CSPRNG 生成足夠長的隨機鹽值。
將鹽值混入密碼,并使用標準的密碼哈希函數進行加密,如Argon2、 bcrypt 、 scrypt 或 PBKDF2 。
將鹽值和對應的哈希值一起存入用戶數據庫。
校驗密碼的步驟:
從數據庫檢索出用戶的鹽值和對應的哈希值。
將鹽值混入用戶輸入的密碼,并且使用通用的哈希函數進行加密。
比較上一步的結果,是否和數據庫存儲的哈希值相同。如果它們相同,則表明密碼是正確的;否則,該密碼錯誤。
回答所涉及的環境:聯想天逸510S、Windows 10。