国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

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

瀏覽:118日期: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
主站蜘蛛池模板: 国产精品亚洲欧美日韩久久 | 欧美一级毛片在线 | 18lxxlxx日本| 久久影院一区二区三区 | 一级做a毛片免费视频 | 欧美一级高清免费播放 | 7ass欧美| 久久午夜影院 | 极品美女一级毛片 | 成人a免费视频播放 | 农村寡妇一级毛片免费看视频 | 伊人天堂在线 | 国产美女一区二区 | 久久久亚洲精品国产 | www.黄色免费 | 99精品视频一区在线观看miya | 欧美日韩视频一区二区三区 | 一区二区三区视频免费观看 | 国产香港特级一级毛片 | 一级日韩 | 黄色网址进入 | 国产精品久久久久久久福利院 | 成年人毛片| 欧美成人性性 | 成人α片 | 国产在线观a免费观看 | 91色综合久久 | 国产成人精品曰本亚洲77美色 | 亚洲看片 | 国产在线91精品天天更新 | 成人五级毛片免费播放 | 亚洲国产精品成人午夜在线观看 | 97在线观看 | 国产在线播放一区二区 | 国产成人精品高清在线 | 手机国产日韩高清免费看片 | 久久er国产精品免费观看1 | 真正全免费视频a毛片 | 亚洲品质自拍网站 | 亚洲成a人在线观看 | 国产亚洲精品一区二区在线观看 |