PHP+MySQL应用中使用XOR运算加密算法
时,用户需要添写用户密码表单。
·除用户本人之外,其他任何人都无法获取其密码信息,包括系统设计者和数据库管理员。 ·系统能根据用户输入的密码验证用户的合法性。 为了达到以上目的,使用XOR算法时可以选择用户名作为明文,而密钥是用户自定义的密码,然后将加密后的用户名存储在数据库中。 另外,在用户登录的时候,有以下两种方式来验证合法用户。 (1)根据其提交的用户名(明文)和密码(密钥)信息重新加密,并使用加密后的信息与数据库中存储的密码信息进行比较,如果相等,则用户合法,否则,为非法用户。 (2)根据数据库中存储的密码信息(明文)和用户输入的密码(密钥)信息进行解密,并把加密后的信息与用户提交的用户名进行比较,如果相等,则用户合法,否则,为非法用户。 两种方式都可以实现第3个目的,本例,将采用第2种方式。本例的实现代码可在18.4.1节“用户登录”和18.4.2节“检查用户”的实现基础之上实现,其中“用户登录”页面无需变化,“检查用户”的实现参考如下。
<?php
Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved 地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008 电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134 《中华人民共和国增值电信业务经营许可证》闽B2-20100024 ICP备案:闽ICP备05037997号
session_register(“user_name”);//注册$user_name变量,注意没有$符号 require_once(“sys_conf.inc”);//系统配置文件,包含数据库配置信息 require_once(“encrypy_xor.php”);//包含xor加密函数文件 //连接数据库 $link_id=mysql_connect($DBHOST,$DBUSER,$DBPWD); mysql_select_db($DBNAME);//选择数据库my_chat //查询是否存在登录用户信息 $str=”selectname,passwordfromuserwherename=’$user_name’”; $result=mysql_query($str,$link_id);//执行查询 @$rows=mysql_num_rows($result);//取得查询结果的记录笔数 $user_name=
Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved 地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008 电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134 《中华人民共和国增值电信业务经营许可证》闽B2-20100024 ICP备案:闽ICP备05037997号
$password=
Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved 地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008 电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134 《中华人民共和国增值电信业务经营许可证》闽B2-20100024 ICP备案:闽ICP备05037997号
$password_en=myEncrypt($user_name,$password);//加密用户信息 //对于老用户 if($rows!=0) { list($name,$pwd)=mysql_fetch_row($result); $password_de=myDecrypt($pwd,$password);//解密用户信息 //如果密码输入正确 if($user_name==$password_de) { $str=”updateusersetis_online=1wherename=’$user_name’andpassword=’$password_en’”; $result=mysql_query($str,$link_id);//执行查询 require(“main.php”);//转到聊天页面 } //密码输入错误 else { require(“relogin.php”); } } //对于新用户,将其信息写入数据库 else { $str=”insertintouser(name,password,is_online)values(‘$user_name’,'$password_en’,1)”; $result=mysql_query($str,$link_id);//执行查询 require(“main.php”);//转到聊天页面 } //关闭数据库 mysql_close($link_id); ?>
第7行引入了加密函数文件encrypy_xor.php,包括上一小节介绍的两个函数。 第19行,使用用户提交的用户名和密码得到加密后的密码值,并且对于新用户,在第44行将这个加密后的值存储在数据库中。 另外,对于老用户,在第2 |
|||||||||||||||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |