Zee*_*eeV 1 c# encryption hash salt
我有一个简单的密码加密器,当用户注册时,它给我一个哈希/盐渍密码存储在我的数据库中.码:
public static string GenerateHashWithSalt(string enteredPassword, string enteredSalt)
{
string sHashWithSalt = enteredPassword + enteredSalt;
byte[] saltedHashBytes = Encoding.UTF8.GetBytes(sHashWithSalt);
System.Security.Cryptography.HashAlgorithm algorithm = new System.Security.Cryptography.SHA256Managed();
byte[] hash = algorithm.ComputeHash(saltedHashBytes);
return Convert.ToBase64String(hash);
}
Run Code Online (Sandbox Code Playgroud)
当用户登录时,我认为我不能简单地通过此代码返回输入的密码并进行比较,因为它会给我一个不同的结果.如何简单地将存储的密码与输入的登录密码进行比较?
创建帐户时,您将拥有一个password hash列,该列将填充GenerateHashWithSalt(password, salt);由他们提供密码的位置,然后随机生成salt.然后将盐与密码哈希一起存储.
然后,当您需要查看用户名/密码是否有效时,您可以使用storedpassword == GenerateHashWithSalt(providedPassword, saltFromDb)或者使用某些用户名/密码.如果它们相同,那么您就知道它们输入了正确的密码