你還在用md5+salt方式加密密碼嗎?PHP5.5引入了Password Hashing函數,內核自帶無需安裝擴展。在PHP5.4下測試了下也可是可以的,使用前最好確認一下你當前的環境是否支持這些函數。
Password Hashing主要提供了4個函數
//查看哈希值的相關信息
array password_get_info (string $hash)
//創建hash密碼
string password_hash(string $password , integer $algo [, array $options ])
//判斷hash密碼是否特定選項、算法所創建
boolean password_needs_rehash (string $hash , integer $algo [, array $options ]
boolean password_verify (string $password , string $hash)
//驗證密碼
$password = 'password123456';//原始密碼
$hash_password = password_hash($password, PASSWORD_BCRYPT);//使用BCRYPT算法加密密碼
if (password_verify($password , $hash_password)){
echo "密碼匹配";
}else{
echo "密碼錯誤";
}
通過password_hash加密後的密碼,使用字典方式很難破解,因爲每次生成的密碼都是不一樣的,破解這種加密只能採用暴力破解。加密方法再好,原始密碼設置的過於簡單都容易被破解,設置複雜的密碼纔是王道。