国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

文字

每個(gè)人在建構(gòu) PHP 應(yīng)用時(shí)終究都會(huì)加入用戶登錄的模塊。用戶的帳號(hào)及密碼會(huì)被儲(chǔ)存在數(shù)據(jù)庫(kù)中,在登錄時(shí)用來(lái)驗(yàn)證用戶。

在存儲(chǔ)密碼前正確的 哈希密碼 是非常重要的。密碼的哈希操作是單向不可逆的,該哈希值是一段固定長(zhǎng)度的字符串且無(wú)法逆向推算出原始密碼。這就代表你可以哈希另一串密碼,來(lái)比較兩者是否是同一個(gè)密碼,但又無(wú)需知道原始的密碼。如果你不將密碼哈希,那么當(dāng)未授權(quán)的第三者進(jìn)入你的數(shù)據(jù)庫(kù)時(shí),所有用戶的帳號(hào)資料將會(huì)一覽無(wú)遺。有些用戶可能(很不幸的)在別的網(wǎng)站也使用相同的密碼。所以務(wù)必要重視數(shù)據(jù)安全的問(wèn)題。

密碼應(yīng)該單獨(dú)被 加鹽處理 ,加鹽值指的是在哈希之前先加入隨機(jī)子串。以此來(lái)防范「字典破解」或者「彩虹碰撞」(一個(gè)可以保存了通用哈希后的密碼數(shù)據(jù)庫(kù),可用來(lái)逆向推出密碼)。

哈希和加鹽非常重要,因?yàn)楹芏嗲闆r下,用戶會(huì)在不同的服務(wù)中選擇使用同一個(gè)密碼,密碼的安全性很低。

值得慶幸的是,現(xiàn)在在 PHP 中這些很容易做到。

使用 password_hash 來(lái)哈希密碼

password_hash 函數(shù)在 PHP 5.5 時(shí)被引入。 此函數(shù)現(xiàn)在使用的是目前 PHP 所支持的最強(qiáng)大的加密算法 BCrypt 。 當(dāng)然,此函數(shù)未來(lái)會(huì)支持更多的加密算法。 password_compat 庫(kù)的出現(xiàn)是為了提供對(duì) PHP >= 5.3.7 版本的支持。

在下面例子中,我們哈希一個(gè)字符串,然后和新的哈希值對(duì)比。因?yàn)槲覀兪褂玫膬蓚€(gè)字符串是不同的(’secret-password’ 與 ‘bad-password’),所以登錄失敗。

<?php 
    require 'password.php'; 
    $passwordHash = password_hash('secret-password', PASSWORD_DEFAULT); 
    if (password_verify('bad-password', $passwordHash)) {     
        // Correct Password 
    } else {    
         // Wrong password 
         }

password_hash() 已經(jīng)幫你處理好了加鹽。加進(jìn)去的隨機(jī)子串通過(guò)加密算法自動(dòng)保存著,成為哈希的一部分。password_verify() 會(huì)把隨機(jī)子串從中提取,所以你不必使用另一個(gè)數(shù)據(jù)庫(kù)來(lái)記錄這些隨機(jī)子串。


上一篇: 下一篇: