【发布时间】:2019-11-28 08:08:03
【问题描述】:
我用 C# 设计了一个注册页面,所有用户都必须输入他们的密码,然后程序会在使用 SHA512 哈希方法将密码保存到数据库之前对密码进行哈希处理。
现在,我想用数据库中保存的密码验证登录页面上输入的密码。
下面的代码是我用来散列密码的方法。
现在如何验证登录页面输入的密码???
byte[] infos = System.Text.Encoding.ASCII.GetBytes(txtPassword.Text);
infos = new System.Security.Cryptography.SHA512Managed().ComputeHash(infos);
String hash = System.Text.Encoding.ASCII.GetString(infos);
【问题讨论】:
-
您无法解密数据库的加密密码。您必须加密您在登录页面上获得的密码,并将其与数据库中的密码进行比较。如果两个哈希都匹配,那么它是正确的,否则不正确。
-
@KinjalParmar 请不要乱扔“加密”和“散列”,就好像它们是一样的。您进一步混淆了 OP。
-
@Nero 这是一个相当好的理解:mking.net/blog/…
-
@KinjalParmar 我按你说的做!我不想从数据库中解密密码,但我想加密从登录字段输入的密码并将其与数据库上的密码进行比较以验证它!