Un nouveau sel
Fait partie de la section Authentification et sécurité du Journey Node.js de Coddy. Leçon 3 sur 24.
Les personnes peuvent choisir le même mot de passe. Un sel est une donnée aléatoire incluse lors de la dérivation de la clé de mot de passe stockée. Un nouveau sel permet à des mots de passe identiques de produire des clés stockées différentes. Le sel est enregistré à côté de la clé ; il n’a pas besoin d’être secret.
const salt = randomBytes(8).toString('hex');
// 8 octets aléatoires représentés par 16 caractères hexadécimauxGénérez le sel dans la fonction appelée pour chaque nouveau mot de passe. Une valeur créée une seule fois au démarrage du serveur serait réutilisée. Vous avez dérivé une clé à l’aide d’un sel fixe utilisé pour l’exercice. Le stockage des mots de passe nécessite désormais un nouveau sel à chaque fois. Ici, entraînez-vous uniquement à générer le sel et à constater que sa longueur textuelle est de 32 caractères.
randomBytes utilise un générateur cryptographique de nombres aléatoires. Math.random() n’est pas destiné aux valeurs sensibles en matière de sécurité. Utilisez la fonction cryptographique importée pour le sel.
Défi
FacileIl s’agit d’un petit projet d’entraînement. Sa configuration est fournie ; modifie uniquement exercise.js.
Renvoie un nouveau sel aléatoire de 16 octets sous forme hexadécimale dans salt. Lance le programme et effectue deux requêtes GET à /result : chaque réponse contient une chaîne hexadécimale différente de 32 caractères. N’utilise pas de sel fixe.
Essayez vous-même
import { randomBytes } from 'node:crypto';
export function exercise() {
return { salt: '00000000000000000000000000000000' };
}
Toutes les leçons de Authentification et sécurité
Entraînez-vous par vous-même : Playground Express