Octets et texte hexadécimal
Fait partie de la section Authentification et sécurité du Journey Node.js de Coddy. Leçon 1 sur 24.
Les fonctions cryptographiques travaillent avec des octets. Un octet est un nombre compris entre 0 et 255. UTF-8 encode le texte sous forme d’octets, et un Buffer contient ces octets dans Node. L’hexadécimal, ou hex, représente chaque octet par deux caractères à l’aide des chiffres de 0 à 9 et des lettres de a à f. Cela permet de stocker facilement les octets sous forme de texte.
const bytes = Buffer.from('Ok', 'utf8');
bytes.toString('hex'); // '4f6b'
Buffer.from('4f6b', 'hex').toString('utf8'); // 'Ok'L’octet correspondant à la lettre O vaut 79 en décimal, et s’écrit 4f en hexadécimal.
Cette conversion est réversible : elle modifie la représentation, pas l’information. Encoder un mot de passe en hexadécimal ne le protège pas. Pour vérifier un hachage de mot de passe, on recalcule une valeur dérivée au lieu de le décoder. Ici, les entrées sont du texte ordinaire, et l’exercice renvoie leur représentation hexadécimale pour que tu puisses comparer les deux formes.
Défi
FacileIl s’agit d’un petit projet d’entraînement. Sa configuration est fournie ; modifie uniquement exercise.js.
Renvoie un champ hex contenant le texte fourni encodé en octets UTF-8, puis en hexadécimal. Envoyer {"text":"Hi"} avec POST à /result renvoie {"hex":"4869"}. Le texte Ada renvoie 416461.
Essayez vous-même
export function exercise({ text }) {
return { hex: text };
}
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