日期:2014-05-17  浏览次数:20634 次

关于MD5加密算法的问题,请教大家!
使用MD5加密 数据库中的数据是一堆字母数字而且不可逆的 想要验证登录 只需要把用户输入的密码进行加密 然后与数据库中的数据进行对比即可 这点我相信大家都知道 但是现在出现这样一个问题:
  我的身份是系统管理员 我需要对成员账号进行编辑 那么编辑页面显示的只能是数据库中的加密过的数据,一次操作中 我不想更改密码 但是提交后 保存方法对数据库中的一堆字母数字又进行了一次加密 导致密码无意中被修改了 这个问题要怎么解决 我不知道我有没有描述清楚问题 有过类似经验的给点提示~

------解决方案--------------------
密码不可编辑,提交的时候也不更新那个字段;
单独提供重置密码的功能
------解决方案--------------------
如果你不想更改密码和方法,设置一个flag ,如果你想改密码就让flag为true 不想改 那就设置为false

至于flag是true或者false,可以更具你修改密码文本框是否有内容或者其他什么的进行设置。

然后根据flag来判断是否调用update方法。

如果你的密码更新和其他的数据更新 绑定在一起写在了一个update里面,那么就很难实现你的想法啦
------解决方案--------------------
或者可以在提交的时候先判断下是否是加密过的,加过密的就不用再加密了。
------解决方案--------------------
能否这样呢,先不说性能。
SQL2:update table set ...... where key='value'; 这个是你现在的sql
你加一个这样的判断和sql
在update前,进行查询。
SQL1:select password from table where key='value';

SQL3:update table set password =(SQL1.result()) where key='value';
if(表单密码为空){
 excute(SQL1);
 excute(SQL2);
 excute(SQL3);
}else{
 excute(SQL2);
}