Bytes y texto hexadecimal
Parte de la sección Autenticación y seguridad del Journey de Node.js de Coddy. Lección 1 de 24.
Las funciones criptográficas trabajan con bytes. Un byte es un número del 0 al 255. UTF-8 codifica el texto como bytes, y un Buffer contiene esos bytes en Node. El hexadecimal, o hex, representa cada byte con dos caracteres, usando los dígitos del 0 al 9 y las letras de la a a la f. Esto hace que los bytes sean cómodos de almacenar como texto.
const bytes = Buffer.from('Ok', 'utf8');
bytes.toString('hex'); // '4f6b'
Buffer.from('4f6b', 'hex').toString('utf8'); // 'Ok'El byte de la letra O es 79 en decimal, y se escribe 4f en hexadecimal.
Esta conversión es reversible: cambia la representación, no la información. Codificar una contraseña en hexadecimal no la protege. Un hash de contraseña se comprueba volviendo a calcular un valor derivado en lugar de decodificarlo. Aquí, las entradas son texto normal y el ejercicio devuelve su representación hexadecimal para que puedas comparar ambas formas.
Desafío
FácilEste es un pequeño proyecto de práctica. La configuración ya está preparada; edita solo exercise.js.
Devuelve un campo hex que contenga el texto proporcionado codificado primero como bytes UTF-8 y luego en hexadecimal. Enviar {"text":"Hi"} mediante POST a /result devuelve {"hex":"4869"}. El texto Ada devuelve 416461.
Pruébalo tú mismo
export function exercise({ text }) {
return { hex: text };
}
Todas las lecciones de Autenticación y seguridad
1Contraseñas
Bytes y texto hexadecimalDerivar una clave de contraseñaUna sal nuevaNunca almacenes contraseñasComparar bytes de claveVerificar una contraseñaReglas de registroPractica por tu cuenta: Playground de Express