Node.jsPytanie 17 z 26
Hashowanie i szyfrowanie
Najpierw odpowiedz na głos lub w myślach, potem porównaj.
Odpowiedź
Rozdzielam trzy zastosowania: szyfrowanie danych, ich integralność oraz przechowywanie haseł.
Szyfrowanie jest odwracalne przy użyciu klucza, np. AES-GCM. Hash jest jednokierunkowy; HMAC pozwala sprawdzać integralność z użyciem sekretu.
Hasła: używam przeznaczonego do nich algorytmu, np. Argon2id, z unikalną solą i odpowiednim kosztem. Zwykłe SHA-256 jest zbyt szybkie do przechowywania haseł.
Pułapka: Base64 to kodowanie, nie szyfrowanie. Nie projektuję własnej kryptografii. Na pytanie o użyte algorytmy opisuję tylko te, z którymi rzeczywiście pracowałem.
Jak poszło? Bądź szczery — „Jeszcze nie” dodaje pytanie do powtórki.