Nowa sól
Część sekcji Uwierzytelnianie i bezpieczeństwo ścieżki Node.js w Coddy. Lekcja 3 z 24.
Użytkownicy mogą wybrać to samo hasło. Sól to losowe dane uwzględniane podczas wyprowadzania klucza przechowywanego hasła. Nowa sól sprawia, że identyczne hasła dają różne przechowywane klucze. Sól jest zapisywana obok klucza; nie musi być tajna.
const salt = randomBytes(8).toString('hex');
// 8 losowych bajtów zapisanych jako 16 znaków szesnastkowychGeneruj sól wewnątrz funkcji wywoływanej dla każdego nowego hasła. Wartość utworzona raz podczas uruchamiania serwera byłaby używana ponownie. Wyprowadziłeś klucz przy użyciu stałej soli testowej. Przechowywanie haseł wymaga teraz za każdym razem nowej soli. Tutaj poćwicz samo generowanie soli i sprawdzanie, czy jej tekst ma 32 znaki.
randomBytes używa kryptograficznego generatora liczb losowych. Math.random() nie jest przeznaczona do wartości istotnych z punktu widzenia bezpieczeństwa. Użyj zaimportowanej funkcji kryptograficznej do wygenerowania soli.
Wyzwanie
ŁatwyTo mały projekt ćwiczeniowy. Konfiguracja jest już przygotowana; edytuj tylko exercise.js.
Zwróć nową losową sól o długości 16 bajtów w postaci szesnastkowej w salt. Uruchom i wykonaj żądanie GET do /result dwa razy: każda odpowiedź zawiera inny 32-znakowy ciąg szesnastkowy. Nie używaj stałej soli.
Spróbuj swoich sił
import { randomBytes } from 'node:crypto';
export function exercise() {
return { salt: '00000000000000000000000000000000' };
}
Wszystkie lekcje w sekcji Uwierzytelnianie i bezpieczeństwo
Poćwicz samodzielnie: Edytor online Express