일부 C# 보안 코드로 작업 중이며 HMACSHA1 클래스를 사용하고있을 때 대체하려고합니다. 코드는 데이터베이스에 저장하기 위해 암호를 해싱하는 데 사용됩니다. 내 눈을 사로 잡은 점은 해시를 정확히 계산하는 HMAC 키로 암호를 사용한다는 것입니다. 그래서 키와 해시 모두에 대한 데이터를 사용하고 있습니까? 이로 인해 보안이 강화되거나 약화됩니까?HMAC SHA1에서 키와 메시지에 동일한 값 사용
사이비 코드 :
string pwd = "[email protected]#123$";
using (HMACSHA1 hasher = new HMACSHA1())
{
hasher.Key = encoding.GetBytes(pwd); // using password for the key
return BytesToHex(hasher.ComputeHash(encoding.GetBytes(pwd))); // computing the hash for the password
}