我正在研究一些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
}