私と、従業員が最初にloginIDとパスワードを入力してシステムに登録するアプリケーションに取り組んでいます。パスワードはハッシュ化およびソルト化され、Loginテーブルに保存されます(両方の値がloginID値とともに保存されます)。ただし、コードをステップスルーし、(登録プロセスの後で)アプリケーションにログインすると、ハッシュ値とソルト値が一致しなくなります。
ユーザーがシステムにログインするときに、ユーザーのパスワードを確認するにはどうすればよいですか?
暗号化機能:
protected static void EncryptPassword(eWebEmployee oEmp)
{
// Create Hash & Salt
sysSecurity oSecurity = new sysSecurity();
oEmp.EmpPasswordSalt = oSecurity.CreateSalt(5);
oEmp.EmpPasswordHash = oSecurity.CreatePasswordHash(oEmp.EmpPasswordSalt, oEmp.EmpPassword);
}
データベース呼び出し:
oDbConn.Open();
DbDataReader oDbDataReader = oDbCommand.ExecuteReader();
while (oDbDataReader.Read())
{
if (!oDbDataReader.IsDBNull(0) && !oDbDataReader.IsDBNull(1))
{
if (oEmp.EmpPasswordSalt == oDbDataReader.GetString(1)
&& oEmp.EmpPasswordHash == oDbDataReader.GetString(0))
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
oDbConnection.Close();
}