私はHMACSHA1クラスを使用しているのを見て、一部のC#セキュリティコードで作業していました。このコードは、データベースに格納するためにパスワードをハッシュするために使用されます。私の目を引っ張ったのは、ハッシュを計算しているものである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
}