background image

$link_id

=mysql_connect(

$DBHOST

,

$DBUSER

,

$DBPWD

); 

mysql_select_db(

$DBNAME

); 

//选择数据库 my_chat 

//查询是否存在登录用户信息 

$str

="select name,password from user where name ='$user_name'"; 

$result

=mysql_query(

$str

,

$link_id

); 

//执行查询 

@

$rows

=mysql_num_rows(

$result

); 

//取得查询结果的记录笔数 

$user_name

=

$_SESSION

["user_name"]; 

$password

=

$_POST

["password"]; 

$salt

 = 

substr

(

$password

, 0, 2); 

$password_en

=crypt(

$password

,

$salt

); 

//使用 crypt()对用户密码进行加密 

//对于老用户 
if

(

$rows

!=0) 


list(

$name

,

$pwd

)=mysql_fetch_row(

$result

); 

//如果密码输入正确 
if

(

$pwd

==

$password_en

$str

="update user set is_online =1 where name ='$user_name' and password='$password_en'"; 

$result

=mysql_query(

$str

$link_id

);

//执行查询 

require

("main.php"); 

//转到聊天页面 

//密码输入错误 
else

 

require

("relogin.php"); 


//对于新用户,将其信息写入数据库 
else

 

$str

="insert into user (name,password,is_online) values('$user_ name','$password_en',1)"; 

$result

=mysql_query(

$str

$link_id

); 

//执行查询 

require

("main.php"); 

//转到聊天页面 

//关闭数据库 

mysql_close(

$link_id

); 

?> 
 
 
示例与上一节所介绍的使用

XOR 加密算法来保护用户信息非常类似,其核心部分在于第

16、17 行使用 crypt()函数获取加密后的密码,而通过在第 25 行比较数据库中的密码和加密
后的密码是否相等来检查用户是否合法。

 

 
  下面,通过一个实例来看一下加密后的密码会变成什么样子。