$pass=md5("test");
$query="insert into test (pass) values ('$pass')";// 以下为比较密码
//$password为客户输入的密码
$passwd=md5($password);
$query="select * from test where user='$user' and pass='$passwd'";
$query="insert into test (pass) values ('$pass')";// 以下为比较密码
//$password为客户输入的密码
$passwd=md5($password);
$query="select * from test where user='$user' and pass='$passwd'";
解决方案 »
- 哪位兄台能帮我调试一个PHP+MYSQL的系统.有偿报酬!!
- 如何让用户输入的HTML代码在从数据库输出的时候失效?
- 请问PHP如何调用.Net 的Web Services服务?
- 非常奇怪的问题!
- 为什么在提交表单时按回车和点击提交按钮会得到不同的效果呢?请大侠们指教下小弟,谢谢!
- 请问如何从数据库中取数据,然后按照3个一行这样排列下去
- 服务器上运行PHP程序
- redhatlinux8.0 的apache,怎么加载php?
- object 中的id 如何使用,在VBScript中
- php网页加背景问题
- 求助!关于字符串替换的问题???
- 关于PHP的SetCookie函数的问题。如何定义全站Cookie?
如果一定要的话,先将存在user表里的密码改为加密形式就行了吧.
所以,你这样做没有太大的意义。因为你不用担心密码在传递的时候被截获因为,一般的,直接输入密码(是用掩码显示的)都会经过非可逆算法(大家都这么说,我也不知道到底可逆否)passw来加密。所以,意义不大
$password = "1234";
而数据库中保存的是
md5($password) = "81dc9bdb52d04dc20036dbd8313ed055";
不是 "1234"(明文),"1234" 与 "81dc9bdb52d04dc20036dbd8313ed055" 是唯一对应,但是由 "1234" 可以求出 "81dc9bdb52d04dc20036dbd8313ed055",
用户登录时可以用类似$md5_password = md5($password);
$sql = "select * from users where ... and password='$md5_password'";
...的办法做验证。但是由于md5 算法的“不可逆性”,由 "81dc9bdb52d04dc20036dbd8313ed055" 无法反算出 "1234",最大限度地保证了用户帐号的安全
2. 固定密码的加密假设你有一些页面,只想让少数人特定的人访问(如网站管理人员),一个简单的办法就是为这些页面设置固定的密码,例如 "1234"
但是,直接在 PHP 文件中以密码明文进行验证:if ( $password == "1234" )显然太危险,如果改成:if ( md5($password) == "81dc9bdb52d04dc20036dbd8313ed055" )别人即使看到了你这个页面,它还是得不到你的密码
当然,以上措施都只是“防君子,不防小人”的,只能保证“即使数据泄密,密码也不会泄漏”,就像《风语者》中安德斯的任务:“to protect the code(保护密码,而不是保护密码员)”。