$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伪静态后 页面里所有的链接都要手动修改么?
- 关于排序比例,求思路
- 关于jqurey ajax中的json问题!
- 在看网上的cms时,经常看到某个对象在用,却找不到这个类是在哪里定义的。怎么办?
- php循环问题
- smarty中的truncate问题
- @fopen($new_url,'r')这个前面的@是什么意思,谢谢了
- php的copy函数在linux下需要多大的权限?
- 请教:我装好PHPMYADMIN后,进入管理界面出现以下错误怎么设置?解决后立即送分
- php中creole都支持那些数据库啊?
- 求助!关于字符串替换的问题???
- 关于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(保护密码,而不是保护密码员)”。