淺析PHP加密與身份驗(yàn)證技術(shù)

數(shù)據(jù)加密是計(jì)算機(jī)系統(tǒng)中實(shí)施信息保護(hù)的一種最可靠的方法,身份驗(yàn)證與加密算法是Web中最常見安全技術(shù),PHP內(nèi)置了身份驗(yàn)證的功能。針對PHP數(shù)據(jù)加密的特點(diǎn),以下介紹幾種基本的身份驗(yàn)證與PHP加密。

PHP加密與身份驗(yàn)證技術(shù)

用crypt()實(shí)現(xiàn)用戶身份驗(yàn)證
使用PHP腳本程序?qū)ξ募夸涍M(jìn)行訪問控制,只允許正確的用戶名和口令的用戶訪問。數(shù)據(jù)庫MySQL中創(chuàng)建一個(gè)members表:

mysql>CREATE TABLE members(2021010.9.16
->username CHAR(14)NOT NULL,
->password CHAR(32)NOT NULL,
->PRIMARY KEY(username)->);

用戶名和密碼數(shù)據(jù)已經(jīng)存儲(chǔ)在該表中,并且加密的口令對應(yīng)其明碼。根據(jù)口令的前2個(gè)字母創(chuàng)建干擾串:
$entered-Password
$salt=substr($enteredPassword,0,2);
$userPswd=crypt($enteredPassword,$salt);
crypt()函數(shù)的缺省狀態(tài)并不是最安全的,如果需要較高的安全性能,需要使用MD5散列算法。

基于文件的身份驗(yàn)證
利用文本文件存儲(chǔ)用戶名和加密密碼對,注意該文件應(yīng)當(dāng)儲(chǔ)存在服務(wù)器文件欄根目錄之外,避免強(qiáng)力猜測發(fā)現(xiàn)此文件,另外口令采用MD5加密,增大安全性。例如:authorpass.txt中內(nèi)容:
Jack:39dksowweld030390924438783409234o
Mike:0sdklsd92300-wweoewlfdkdsfsdkkeiiwe
Andy:jkddi8023ks;929ssjsdkqjhdkds4rs738w8
代表3個(gè)用戶名和密碼。
解析authorpass.txt文件的PHP加密驗(yàn)證代碼如下:
淺析PHP加密與身份驗(yàn)證技術(shù)

基于數(shù)據(jù)庫的身份驗(yàn)證
基于數(shù)據(jù)庫的身份驗(yàn)證不僅改善了管理的方便性,提高了可擴(kuò)展性,而且可以集成到更大的數(shù)據(jù)庫基礎(chǔ)設(shè)施中。