Una sal nueva
Parte de la sección Autenticación y seguridad del Journey de Node.js de Coddy. Lección 3 de 24.
Las personas pueden elegir la misma contraseña. Una sal es un dato aleatorio que se incluye al derivar la clave de contraseña almacenada. Una sal nueva hace que las contraseñas iguales produzcan claves almacenadas diferentes. La sal se guarda junto a la clave; no es necesario que sea secreta.
const salt = randomBytes(8).toString('hex');
// 8 bytes aleatorios representados como 16 caracteres hexadecimalesGenera la sal dentro de la función que se llama para cada contraseña nueva. Un valor creado una sola vez cuando se inicia el servidor se reutilizaría. Has derivado una clave usando una sal de práctica fija. Ahora, para almacenar contraseñas, se necesita una sal nueva cada vez. Aquí, practica únicamente generar la sal y comprobar que su longitud de texto es de 32 caracteres.
randomBytes utiliza un generador criptográfico de números aleatorios. Math.random() no está diseñado para valores sensibles desde el punto de vista de la seguridad. Usa la función criptográfica importada para la sal.
Desafío
FácilEste es un pequeño proyecto de práctica. La configuración ya está proporcionada; edita solo exercise.js.
Devuelve una sal aleatoria nueva de 16 bytes en hexadecimal en salt. Ejecuta GET /result dos veces: cada respuesta contiene una cadena hexadecimal diferente de 32 caracteres. No uses una sal fija.
Pruébalo tú mismo
import { randomBytes } from 'node:crypto';
export function exercise() {
return { salt: '00000000000000000000000000000000' };
}
Todas las lecciones de Autenticación y seguridad
Practica por tu cuenta: Playground de Express