Proceso de convertir datos de longitud variable en una representación de longitud fija.
Utilizado para búsquedas rápidas, encriptación y generación de claves únicas. Los hashes son unidireccionales (no se pueden revertir).
// Hashing de contraseñas con bcrypt import bcrypt from 'bcrypt'; const password = 'miPassword123'; const hash = await bcrypt.hash(password, 10); // $2b$10$XYZ... (siempre diferente) // Verificar const esValido = await bcrypt.compare('miPassword123', hash); // true // Hash para integridad de datos (SHA-256) import crypto from 'crypto'; function sha256(texto: string): string { return crypto.createHash('sha256').update(texto).digest('hex'); } sha256('Hola'); // 'a591a6d40bf420404a011733cfb7b190...' // Hash para estructuras de datos (Map) const hashMap = new Map(); hashMap.set('clave', 'valor'); hashMap.get('clave'); // O(1) gracias al hashing // Hash para cache keys const cacheKey = sha256(JSON.stringify({ userId: 1, page: 1 }));