사용자 등록시 내 데이터베이스에 저장할 암호/해시 암호를 제공하는 간단한 암호 암호화 기가 있습니다. 코드 : 사용자가 로그인 할 때 암호화 로그인시 해시 된 & 암호가있는 암호 비교
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);
}
, 나는 단순히 다시이 코드를 통해 입력 한 암호를 넣고 그것이 나에게 다른 결과를 줄 것 같은 비교할 수 없습니다 추정.
간단히은 저장된 비밀번호와 입력 된 로그인 비밀번호를 비교할 수 있습니까?
절인 + 해시 암호와 비교 어쩌면 내가 제대로 내 암호화 교훈을 기억하지 않는다, 그러나 당신이 당신이 사용자의 암호를 얻을 때 소금, 무엇을해야하는지 정확히하고 있고, DB에. 그것은 같은 문자열이어야합니다. 무작위성은 완전히 결정론적인 기능입니다. – OopsUser
해시 알고리즘은 멱등수입니다. 동일한 입력 = 같은 출력이 출력됩니다. –
단일 반복 SHA-256은 적절한 암호 해시가 아닙니다. 나는'Rfc2898DeriveBytes' 클래스를 사용하여 최소한 10000 반복의 PBKDF2를 사용할 것입니다. – CodesInChaos