没接触过java,一段程序中修改用户信息时,用户密码没有进行加密就明文写入到数据库,我查了一下语句,下面的是相关语句,应当是语句写的有问题吧,但不知道如何改了,求高手解 String newpassword=workerForm.getPassword();
if(password.equals(newpassword)){
worker.setPassword(password);
}else{
newpassword=MD5_Util.MD5(newpassword);
worker.setPassword(newpassword);
}
if(password.equals(newpassword)){
worker.setPassword(password);
}else{
newpassword=MD5_Util.MD5(newpassword);
worker.setPassword(newpassword);
}
worker.setPassword(password);
}
maybe the part of code have some problem.
i don't know how to implement password.equals() method.
and setPassword method whether have use MD5 or not
你的结果是因为你执行了
if(password.equals(newpassword)){
worker.setPassword(password); //在这里set进去的
}
你可以在上面的语句后打印一下加密后的密文,查看是否正常。
在不知道form传过来的password有没有加密的情况下去比较,拿没加密的跟加过密的去比较,这样是比较不出来的修改方法1: db的既存password先解密,然后再比较
修改方法2: form的newpassword,进来就md5加密,然后再比较根据你的worker里需要保存加密还是未加密的password,来决定用哪个修改方法