日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

向普通人加密 用PHP程序保護(hù)數(shù)據(jù)(3)_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:用PHP實(shí)現(xiàn)Ftp用戶的在線管理
領(lǐng)導(dǎo)要我策劃一個網(wǎng)頁設(shè)計大賽和Flash創(chuàng)作大賽,要求必須實(shí)現(xiàn)在線報名和上傳作品。通過FreeBSD Apache PHP Mysql FTP我實(shí)現(xiàn)了該要求。 實(shí)現(xiàn)在線報名和上傳作品的思路是利用網(wǎng)頁表單收集用戶

在這一過程結(jié)束時,數(shù)據(jù)庫中仍有一個明文密碼。您不能顯示它。最容易的修復(fù)方法是使用 PHP 的內(nèi)置 crypt() 功能。

使用 crypt()

PHP 的內(nèi)置 crypt() 功能可實(shí)現(xiàn)單向加密 或單向散列。它只所以是單向的,是因?yàn)樵趯δ硟?nèi)容進(jìn)行加密后,您永遠(yuǎn)不能將其反轉(zhuǎn)為明文。乍一看,此想法似乎很荒謬。使用加密主要是保護(hù)信息,隨后能夠使用該信息,后者通常意味著能夠?qū)λM(jìn)行解密。

不要絕望。單向加密方案和 crypt() 特別受歡迎�?梢允贡Wo(hù)信息的方法更安全。如果您的用戶密碼列表落入不法之徒之手,他們實(shí)際上沒有將密碼解密為明文的方法。

讓我們返回到密碼示例。注釋 (notational) PHP 應(yīng)用程序可能包括讓系統(tǒng)管理員創(chuàng)建、編輯和刪除用戶的模塊。例如,在將用戶記錄存儲到用戶表之前,PHP 腳本可以使用 crypt() 對密碼加密。

清單 4. 使用 crypt() 加密密碼

以下為引用的內(nèi)容:

<?php
$user = strip_tags(substr($_POST['user'],0,32));
$pw = strip_tags(substr($_POST['password'],0,32));

$cleanpw = crypt($pw);

$sql = "insert into users (username,password)
values('".mysql_real_escape_string($user)."',
'".mysql_real_escape_string($cleanpw)."')";
//.....etc....
?>

crypt() 將一串明文作為它的第一個參數(shù)字,對它應(yīng)用 salt 會影響加密算法的隨機(jī)性,并生成輸入明文的單向暗文。如果不提供 salt,則 PHP 通常默認(rèn)其系統(tǒng) salt,它可以是以下值和長度之一:
算法 Salt

以下為引用的內(nèi)容:
CRYPT_STD_DES 2 個字符(默認(rèn))
CRYPT_EXT_DES 9 個字符
CRYPT_MD5 12 個字符,以 $1$開頭
CRYPT_BLOWFISH 16 個字符,以 $2$開頭


許多現(xiàn)代 PHP 安裝使用 MD5 或更高的 salt,它們使用強(qiáng)大的 12 個字符的 salt,但是,不要對任何事情想當(dāng)然。您最好知道系統(tǒng)正在使用哪一個值。您可以使用以下 PHP 代碼片段檢查服務(wù)器的設(shè)置:

以下為引用的內(nèi)容:
<?php echo "System salt size: ". CRYPT_SALT_LENGTH; ?>

返回的答案將是 2、9、12 或 16,它告訴您系統(tǒng)正在使用的值。要使用 MD5 或更高版本的 salt,您可以顯式調(diào)用明文和 salt 參數(shù)中的 crypt() 函數(shù)以及 md5() 函數(shù),以獲取隨機(jī)暗文(參見清單 5)。md5() 函數(shù)可以散列反饋的任何字符串,并將其轉(zhuǎn)變?yōu)楣潭ㄩL度為 32 個字符的字符串。您可能更喜歡其他方法,具體的使用取決于安全需求和個人愛好。

清單 5. 使用 crypt() 和 md5() 加密密碼

以下為引用的內(nèi)容:

<?php
$user = strip_tags(substr($_POST['user'],0,32));
$pw = strip_tags(substr($_POST['password'],0,32));

$cleanpw = crypt(md5($pw),md5($user));

$sql = "insert into users (username,password)
values('".mysql_real_escape_string($user)."',
'".mysql_real_escape_string($cleanpw)."')";
//.....etc....
?>

現(xiàn)在數(shù)據(jù)庫中已經(jīng)擁有一個已加密的密碼,但是沒有對其進(jìn)行解密的方法。如何使之有用?一個比較容易的方法是:對用戶提供的任何傳入密碼都使用相同的加密方法,并將結(jié)果與您存儲的密碼比較。

分享:用PHP程序?qū)崿F(xiàn)刪除目錄的三種方法實(shí)例
1。遞規(guī)法: //沒測試 以下為引用的內(nèi)容: deleteDir($dir) { if (rmdir($dir)==false && is_dir($dir)) { if ($dp = opendir($dir)) { w

來源:模板無憂//所屬分類:PHP教程/更新時間:2008-08-22
相關(guān)PHP教程