Mi sto preparando per una presentazione e ho bisogno di capire come funziona HMACSHA1. Capisco cos'è un sale e capisco che fa un certo numero di cicli, ma come funziona davvero?
Quando viene aggiunto il sale?
Usando solo la funzione di hashing .NET SHA1 standard come posso ricreare un algoritmo HMACSHA1? Mi piacerebbe farlo manualmente, non con l'implementazione PBKDF2.
Mi aspettavo i seguenti 2 blocchi di codice per dare lo stesso risultato ... ma non lo fanno. Dove sono andato storto?
HMACSHA1 hmac = new HMACSHA1(System.Text.Encoding.Unicode.GetBytes("test"));
var x = hmac.ComputeHash(System.Text.Encoding.Unicode.GetBytes("test"));
Console.WriteLine(Convert.ToBase64String(x));
SHA1 sha1 = new SHA1Managed();
var y = sha1.ComputeHash(System.Text.Encoding.Unicode.GetBytes("testtest"));
var yy = System.Text.Encoding.Unicode.GetBytes("test").ToString() + y;
var yyy = sha1.ComputeHash(System.Text.Encoding.Unicode.GetBytes(yy));
Console.WriteLine(Convert.ToBase64String(yyy));