Dériver une clé de mot de passe
Fait partie de la section Authentification et sécurité du Journey Node.js de Coddy. Leçon 2 sur 24.
Une clé de mot de passe est calculée à partir d’un mot de passe et d’un sel. Contrairement à un encodage, ce calcul n’est pas conçu pour être inversé. Scrypt rend les tentatives de deviner le mot de passe coûteuses en exigeant du travail pour chaque essai. Avec le même mot de passe, le même sel et les mêmes paramètres de dérivation, y compris la longueur de la clé, la clé est reproductible. Cette clé dérivée est communément appelée le hachage du mot de passe.
const key = await scryptAsync('invite 4821', 'example-only', 16);
return key.toString('hex');Le troisième argument est la longueur de la clé en octets. L’utilitaire fourni utilise promisify pour transformer scrypt, qui repose sur les rappels de Node, en une fonction qui renvoie une promesse. Tu peux utiliser await avec cette fonction, comme pour la lecture d’un fichier. Le sel fixe utilisé dans cet exercice te permet de comparer les résultats ; pour stocker de vrais mots de passe, on utilise un nouveau sel aléatoire.
L’exercice suivant génère le nouveau sel aléatoire nécessaire lors du stockage d’un nouveau mot de passe.
Défi
FacileIl s’agit d’un petit projet d’entraînement. Sa configuration est fournie ; modifie uniquement exercise.js.
Termine la fonction : dérive une clé de 32 octets à partir du mot de passe et du sel fournis, puis renvoie sa représentation hexadécimale dans key. Envoie deux fois {"password":"practice","salt":"fixed-for-this-exercise"} avec POST à /result : la même clé de 64 caractères apparaît. Modifie l’une ou l’autre des entrées et la clé change.
Essayez vous-même
import { scryptAsync } from './crypto.js';
export async function exercise({ password, salt }) {
return { key: password };
}
Toutes les leçons de Authentification et sécurité
1Mots de passe
Octets et texte hexadécimalDériver une clé de mot de passeUn nouveau selNe stockez jamais les mots de passeComparer les octets de cléVérifier un mot de passeRègles d’inscriptionEntraînez-vous par vous-même : Playground Express