我的電腦上有PHP 5.4版本,所以我不能使用password_hash()
,我用crypt()
來代替。PHP 5.4同時檢查密碼驗證
但接下來的問題是如何驗證密碼,如果他們匹配?
PHP文檔說如果使用crypt()
作爲密碼versifier的最佳方式是hash_equals()
但只有PHP 5.5。
我總是得到:
Fatal error: Call to undefined function hash_equals() in...
我的電腦上有PHP 5.4版本,所以我不能使用password_hash()
,我用crypt()
來代替。PHP 5.4同時檢查密碼驗證
但接下來的問題是如何驗證密碼,如果他們匹配?
PHP文檔說如果使用crypt()
作爲密碼versifier的最佳方式是hash_equals()
但只有PHP 5.5。
我總是得到:
Fatal error: Call to undefined function hash_equals() in...
正如你所提到的PHP 5.4沒有這個功能呢,所以你有兩個選擇,以充分利用這個非常有用的功能:
更好的方法:
更新到PHP 5.5/5.6,並使用當時的機庫
如果這是不可能的:
你可以使用這個庫:
https://github.com/ircmaxell/password_compat
該程序庫提供的功能正爲PHP 5.5 password_ *向前兼容性。
你可以只比較他們兩個這樣的:
<?php
$the_password= crypt('12345', 'aasddas');
$user_entered_pass='125';
if(crypt($user_entered_pass,'aasddas') == $the_password){
echo "right";
}else{
echo "wrong";
}
?>
簡短的回答是,是什麼password_compat是,所以用它。
The PHP documentation said that if you use
crypt()
the best way to use as password versifier ishash_equals()
but only PHP 5.5.
crypt()
,你使用password_hash()
與password_verify()
。hash_equals()
在PHP 5.6中添加,而不是5.5。