【发布时间】:2015-12-02 08:27:46
【问题描述】:
场景是这样的:
密码作为散列密码返回输入字段,
1 - 第一个用户不更新密码;在这种情况下,只需返回当前的哈希密码,
2 - 否则用户更新他/她的密码,然后对新密码进行哈希处理,然后将其保存在数据库中。
那么如何检查返回的密码是否经过哈希处理?
代码:
public int UpdatePrivilege(User user, int changerId, string pwd)
{
if (user.pwd == pwd) //how to check if hashed or not.
{
user.pwd = _Md5Hash(user.pwd);
}
return dalc.Update(user, changerId);
}
其次,假设用户没有更新密码;保存过程后旧密码会保持原样吗?
【问题讨论】:
-
但我看不到链接的答案如何解决 OP 的问题。如果用户输入像
7A34FE这样的新密码,其他答案的正则表达式会告诉他它已经被散列了。您必须跟踪用户是否通过输入字段的TextChanged事件或输入字段中的最终文本与您之前输入的哈希值的比较来更改密码。