我正在进行登录页面,我使用SHA1来输入密码。我生成盐串。将密码添加到生成的salt字符串,然后哈希。
这是我在注册时存储值的方式。我只存储用户名,哈希密码和盐串
string saltString = retSaltString();//This returns a salt string
string password = txtPassword.Text;
string saltPassword = password + saltString;
string hashPassword = FormsAuthentication.HashPasswordForStoringInConfigFile(saltPassword, "SHA1");
当我对用户进行身份验证时,我会反过来做同样的事情:
string hashedPassword = //from database
string saltString = //from database
string saltPassword = txtPassword.Text + saltString;
string hashEnterPassword =
FormsAuthentication.HashPasswordForStoringInConfigFile(saltPassword, "SHA1");
但这次hashEnterPassword不同,即使有效密码登录也失败。为什么散列会生成不同的字符串?我在4.5中开始了这个项目,因为它说它不再支持SHA1,我将它改为4.0。我哪里错了?提前谢谢。