mysql查询语句的where表达式如何引用字段值?

现有一个用户表:user字段列表为:uid 整数唯一username 字符串password 加密字符串(算法见如下)salt (6位随机数) 我要做登录判断,如何做到查询的时候引用一下自身的salt字段值进行判断?思想如下:$u = $_POST["username"];$p = $_POST["password"];select uid from `user` where username = '$u' and password ='" . md5( md5($p).salt字段值 ) . "' 意思是:密码必须是,当前密码经过md5一次加密后再与该行的salt字段值合并后再经过一次md5加密。问题关键在于,如何在where条件式里引用本身的salt字段值,求教??

你只能先查处salt的值之后用MD5加密 然后select uid from `user` where username = '$u' and password +salt加密后的值='" . md5($p).salt加密后的值 . "' 不要觉得这是多此一举 你这样做的本身就是多此一举 如果是从安全性方面考虑 你这随机数也不是随机数了 因为已经固定在数据库了 要做建议你从PHP内取得随机数$a 然后在MD5加密 $b=md5($p).md5($a) 查询:select uid from `user` where username = '$u' and password+$a ='$b' 这样的安全性比你数据库存随机的安全性高得多 每次$a的值才是随机 如果能解决您的问题请采纳 谢谢
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜