我使用加密将客户密码存储在数据库中。
当客户编辑其个人数据(包括密码)时,密码显示为*****
我怎么能理解使用改变了他的密码所以写入DB而不是一次又一次地加密。
我的意思是密码字段中的值是加密值。如果不更改密码必须使用相同的值更新(或根本不更新) 如果用户将密码更改为1234,我必须加密1234并将DB写入加密值
由于
答案 0 :(得分:6)
不要从数据库发送md5哈希字符串。设置三个字段:
然后检查md5散列后的第一个字段是否等于DB中存储的字段。如果是,则散列第二个字段并存储它。 (仅当第二个和第三个相等时)
答案 1 :(得分:0)
当用户想要更改密码时,您需要输入旧密码和新密码。
这样,您可以对旧密码进行编码,检查编码值是否与数据库中的相同。如果它是相同的,那么您应该使用编码的新密码更新db中的密码。如果它不相同(或旧密码为空),则不更新。
这有助于您区分密码更改和仅设置更改。您还获得了一定程度的安全性,就好像有人抓住了您的用户会话一样,如果没有捕获原始密码,他也无法更改密码。
答案 2 :(得分:0)
几点: