亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

PHP中使用crypt()實現用戶身份驗證

瀏覽:84日期:2024-02-09 15:07:00
在開發PHP應用中如果不想自己開發新的加密算法,還可以利用PHP提供的crypt()函數來完成單向加密功能。了解crypt()只要有一點使用非Windows平臺經驗的讀者都可能對crypt()相當熟悉,這一函數完成被稱作單向加密的功能,它可以加密一些明碼,但不能反過來將密碼重新轉換為原來的明碼。crypt()函數定義如下。string crypt (string input_string [, string salt])其中,input_string參數是需要加密的明文字符串,第二個可選的salt是一個位字串,能夠影響加密的暗碼,進一步排除被破解的可能性。缺省情況下,PHP使用一個2個字符的DES干擾串,如果系統使用的是MD5(參考下一節內容),PHP則會使用一個12個字符的干擾串。可以通過執行下面的命令發現系統將要使用的干擾串的長度。print 'My system salt size is: '. CRYPT_SALT_LENGTH;crypt()支持4種加密算法,表19.1顯示了其支持的算法和相應的salt參數的長度。表crypt()支持四種加密算法算法Salt長度CRYPT_STD_DES2-character (Default)CRYPT_EXT_DES9-characterCRYPT_MD512-character beginning with $1$CRYPT_BLOWFISH16-character beginning with $2$從表面上看,crypt()的函數似乎沒有什么用處,但該函數的確被廣泛用來保證系統密碼的完整性。因為,單向加密的口令即使落入第三方的手里,由于不能被還原為明文,也沒有什么大用處。用crypt()實現用戶身份驗證上一部分簡單介紹了crypt()函數的功能,下面利用其來實現用戶的身份驗證,其所要實現的目標同19.2.3節所介紹的一致。1 <!--check_user_crypt.php:使用crypt() 函數驗證用戶---------------->2 <?php3 $user_name=$_POST['user_name'];4 require_once('sys_conf.inc'); //系統配置文件,包含數據庫配置信息56 //連接數據庫7 $link_id=mysql_connect($DBHOST,$DBUSER,$DBPWD);8 mysql_select_db($DBNAME); //選擇數據庫my_chat910 //查詢是否存在登錄用戶信息11 $str='select name,password from user where name ='$user_name'';12 $result=mysql_query($str,$link_id); //執行查詢13 @$rows=mysql_num_rows($result); //取得查詢結果的記錄筆數14 $user_name=$_SESSION['user_name'];15 $password=$_POST['password'];16 $salt = substr($password, 0, 2);17 $password_en=crypt($password,$salt); //使用crypt()對用戶密碼進行加密1819 //對于老用戶20 if($rows!=0)21 {22 list($name,$pwd)=mysql_fetch_row($result);2324 //如果密碼輸入正確25 if($pwd==$password_en)26 {27 $str='update user set is_online =1 where name ='$user_name' and password='$password_en'';28 $result=mysql_query($str, $link_id);//執行查詢29 require('main.php'); //轉到聊天頁面30 }31 //密碼輸入錯誤32 else33 {34 require('relogin.php');35 }3637 }38 //對于新用戶,將其信息寫入數據庫39 else40 {41 $str='insert into user (name,password,is_online) values('$user_ name','$password_en',1)';42 $result=mysql_query($str, $link_id); //執行查詢43 require('main.php'); //轉到聊天頁面44 }45 //關閉數據庫46 mysql_close($link_id);47 ?>示例與上一節所介紹的使用XOR加密算法來保護用戶信息非常類似,其核心部分在于第16、17行使用crypt()函數獲取加密后的密碼,而通過在第25行比較數據庫中的密碼和加密后的密碼是否相等來檢查用戶是否合法。下面,通過一個實例來看一下加密后的密碼會變成什么樣子。例如,用戶名為rock,密碼為123456,則加密后的密碼為:12tir.zIbWQ3c上面就實現了一個簡單的用戶身份驗證系統。在使用crypt()保護重要的機密信息時,需要注意的是,在缺省狀態下使用crypt()并不是最安全的,只能用在對安全性要求較低的系統中。
標簽: PHP
主站蜘蛛池模板: 国产一级片视频 | 黑人网址 | 婷婷亚洲综合五月天小说在线 | 日本一级不卡一二三区免费 | 日本一区欧美 | 97精品国产福利一区二区三区 | 成人无遮挡免费网站视频在线观看 | 亚洲精品一区二区ai换脸 | 国产一区二区久久 | 香蕉成人999视频 | 劲爆欧美色欧美 | 在线观看高清视频bbixx | 一级特黄aaaaaa大片 | 九九操视频 | 成人精品一区久久久久 | 久久尤物视频 | 韩国三级欧美三级国产三级 | a一区二区三区视频 | 三级黄色免费 | 黄色永久网站 | 国产娱乐凹凸视觉盛宴在线视频 | 国产日产欧产精品精品推荐在线 | 国产日韩欧美中文 | 亚洲精品亚洲人成在线 | 小明永久免费视频 | 中文字幕最新中文字幕中文字幕 | 911国产在线观看精品 | 傲视影院午夜毛片 | 国产图片综合区 | 善良的后裔完整视频在线观看 | 欧美人成毛片在线播放 | 久草免费网站 | 亚洲国产精品久久人人爱 | 免费人成黄页网站在线观看国产 | 青青草视频在线观看免费 | 亚洲视频免 | 1024你懂的国产欧美日韩在 | 在线观看视频日韩 | 欧美激情人成日本在线视频 | 92国产福利视频一区二区 | 亚洲日本韩国欧美 |