Junior — Middle
Můžete uvést hashovací algoritmy používané k vytváření autentizačních tokenů?
sobes.tech AI
Odpověď od AI
Pro vytváření ověřovacích tokenů se často používají následující hashovací algoritmy:
-
HMAC (Hash-based Message Authentication Code):
- Kombinace tajného klíče a hashovací funkce.
- Často se používá s SHA-256 nebo SHA-1.
- Příklad: HMAC-SHA256.
-
SHA-256:
- Kryptografická hashovací funkce široce používaná k generování tokenů.
-
SHA-1:
- Starší hashovací funkce, v současnosti méně doporučovaná kvůli zranitelnostem.
-
MD5:
- Zastaralý algoritmus, nedoporučuje se pro bezpečnostní účely.
V C# se pro tvorbu ověřovacích tokenů obvykle používá HMAC se SHA-256, například pro JWT (JSON Web Tokens).
Příklad tvorby HMAC-SHA256:
using System.Security.Cryptography;
using System.Text;
string klíč = "tajný_klíč";
string zpráva = "data_pro_token";
using (var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(klíč)))
{
byte[] hash = hmac.ComputeHash(Encoding.UTF8.GetBytes(zpráva));
string token = Convert.ToBase64String(hash);
Console.WriteLine(token);
}
Pro bezpečné tokeny je vhodné používat HMAC s moderními hashovacími funkcemi, jako je SHA-256.