我正在尋找一些關於更新我的密碼系統的最佳實踐的幫助或建議。我前一段時間使用php構建了一個登錄系統(在我真的知道我在做什麼之前),它所做的一切就是使用sha1加密密碼,而我知道這些密碼不安全或者不便於使用。在不影響當前用戶的情況下更改密碼結構
所以基本上就成功登錄它是所有
$password = sha1($password1)
我想用我一直在使用最近一個不同的方法,它是利用crypt_blowfish的功能,像這樣:
function generateHash($password_1){
if(defined("CRYPT_BLOWFISH") && CRYPT_BLOWFISH){
//echo "WE HAVE CRYPT BLOWFISH YAYA";
$salt = '$2y$11$'. substr(md5(uniqid(rand(), true)), 0, 22);
return crypt($password_1, $salt);
}//End If
}//End Function generateHash*/
在註冊我加密密碼: $ password_1 = $ _POST ['password_1']; //哈希密碼 $ password = generateHash($ password_1);
然後在登錄我用
$hashed_password = crypt($password_1, $entered_password)
if($hashed_password != $enter_password){
$error['password'] = 'The password or username you entered is incorrect.';
}else{
'Your Good to Go!'
}
我有很多的用戶,並希望做出改變無縫的或至少非常少的影響到他們。這甚至有可能在沒有他們注意到變化的情況下做到?任何幫助或建議,不勝感激。
感謝
你可以檢查密碼有多長,SHA1應該正好40個字符,如果是40個字符長,然後用老方法,並引導他們到修改密碼頁面,否則使用新的方法。 – Ian
是你的表有一個插入的日期列字段? –
是的我有一個自動時間戳列 – bilcker