溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

哈希密碼為什么是PHP比md5更安全的加密方式

發(fā)布時間:2020-07-11 09:32:25 來源:億速云 閱讀:255 作者:Leah 欄目:編程語言

哈希密碼為什么是PHP比md5更安全的加密方式?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

                                                           傳統(tǒng)加密方式:

md5(密碼+鹽值);

$passwordString='your password';//你的密碼
$salt="your salt value";//鹽值,增加復(fù)雜度(隨機字串)
$md5Password=md5($passwordString.$salt);

從理論上來說,md5不可逆,算是一種比較安全的加密方式。但是我要提醒的是,md5早在04年的時候就被中國人破解。一旦被人拖庫的化,密碼泄漏的可能性極大。

現(xiàn)在推薦一種新的處理方式:

密碼散列算法函數(shù)

password_get_info — 返回指定哈希(hash)的相關(guān)信息

password_hash — 創(chuàng)建密碼的哈希(hash)

password_needs_rehash — Checks if the given hash matches the given options

password_verify — 驗證密碼是否和哈希匹配

PHP5.5引入了Password Hashing函數(shù),內(nèi)核自帶無需安裝擴展。在PHP5.4下測試了下也可是可以的,使用前最好確認一下你當(dāng)前的環(huán)境是否支持這些函數(shù)。

Password Hashing主要提供了4個函數(shù)

//查看哈希值的相關(guān)信息
array password_get_info (string $hash)
 
//創(chuàng)建hash密碼
string password_hash(string $password , integer $algo [, array $options ])
 
//判斷hash密碼是否特定選項、算法所創(chuàng)建
boolean password_needs_rehash (string $hash , integer $algo [, array $options ] 
 
boolean password_verify (string $password , string $hash)
//驗證密碼

代碼演示:

$password = 'password123456';//原始密碼
//使用BCRYPT算法加密密碼
$hash_password = password_hash($password, PASSWORD_BCRYPT);
 
 
if (password_verify($password , $hash_password)){
   echo "密碼匹配";
}else{
   echo "密碼錯誤";
}

重要特征:

通過password_hash加密后的密碼,使用字典方式很難破解,因為每次生成的密碼都是不一樣的。破解這種加密只能采用暴力破解。

最后提醒:

加密方法再好,原始密碼設(shè)置的過于簡單都容易被破解,設(shè)置復(fù)雜的密碼才是王道。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI