Saltar al contenido principal

Generador de hash

Herramienta gratuita en línea para generar hash MD5, SHA-1, SHA-256, SHA-512.

📝 Texto de entrada

✨ Hash generado

MD5128-bit
SHA-1160-bit
SHA-256256-bit ⭐ 권장
SHA-512512-bit

Las funciones hash convierten datos de cualquier tamaño en un valor de tamaño fijo. Se utilizan para almacenar contraseñas, verificar la integridad de archivos, etc. SHA-256 es el algoritmo más recomendado actualmente.

¿Qué es una función hash?​

Una función hash es una función unidireccional que convierte datos de tamaño arbitrario en un valor de tamaño fijo (hash). La misma entrada siempre genera el mismo hash, y no se pueden restaurar los datos originales desde el hash.

Características principales​

  • 4 algoritmos: MD5, SHA-1, SHA-256, SHA-512
  • Generación en tiempo real: Genera hash al momento de ingresar
  • Copia instantánea: Copia cada hash con un clic
  • Soporte multiidioma: Soporte completo UTF-8 (español, japonés, chino, etc.)
  • Muestra algoritmo recomendado: Se recomienda SHA-256

Algoritmos soportados​

MD5 (128-bit) ⚠️​

  • Longitud: 32 caracteres (hexadecimal)
  • Velocidad: Muy rápido
  • Seguridad: Vulnerable - Posible ataque de colisión
  • Uso: Checksum, sistemas heredados
Entrada: Hello World
MD5: b10a8db164e0754105b7a99be72e3fe5

SHA-1 (160-bit) ⚠️​

  • Longitud: 40 caracteres (hexadecimal)
  • Velocidad: Rápido
  • Seguridad: Vulnerable - Posible ataque de colisión
  • Uso: Git (heredado), checksum
Entrada: Hello World
SHA-1: 0a4d55a8d778e5022fab701977c5d840bbc486d0

SHA-256 (256-bit) ⭐ Recomendado​

  • Longitud: 64 caracteres (hexadecimal)
  • Velocidad: Media
  • Seguridad: Fuerte - Actualmente seguro
  • Uso: Hash de contraseñas, blockchain, firma digital
Entrada: Hello World
SHA-256: a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e

SHA-512 (512-bit)​

  • Longitud: 128 caracteres (hexadecimal)
  • Velocidad: Más lento que SHA-256 (puede ser rápido en sistemas de 64 bits)
  • Seguridad: Muy fuerte
  • Uso: Cuando se requiere alta seguridad
Entrada: Hello World
SHA-512: 2c74fd17edafd80e8447b0d46741ee243b7eb74dd2149a0ab1b9246fb30382f27e853d8585719e0e67cbda0daa8f51671064615d645ae27acb15bfb1447f459b

Casos de uso​

1. Almacenamiento de contraseñas (SHA-256 + Salt)​

const password = 'myPassword123';
const salt = generateRandomSalt(); // UUID, etc.
const hash = sha256(password + salt);

// Guardar en base de datos
// { username: 'user1', hash: '...', salt: '...' }

⚠️ Nota: ¡Se recomienda usar algoritmos dedicados como bcrypt, argon2!

2. Verificación de integridad de archivos​

# Verificar hash de archivo descargado
$ sha256sum ubuntu-22.04.iso
a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e

# Comparar con hash oficial

3. Firma API​

const data = { userId: 123, amount: 100 };
const secret = 'api-secret-key';
const signature = sha256(JSON.stringify(data) + secret);

// Incluir en encabezado de solicitud
// X-Signature: a591a6d40bf420404a011733cfb7b190...

4. ID de commit Git​

# Git usa SHA-1 (ID único de cada commit)
$ git log --oneline
a591a6d Fix bug in login
b10a8db Add new feature

5. Generación de clave de caché​

const cacheKey = md5(`user:${userId}:profile`);
cache.set(cacheKey, userData);

6. Eliminación de duplicados de datos​

const contentHash = sha256(fileContent);
if (seenHashes.has(contentHash)) {
console.log('Archivo duplicado');
} else {
seenHashes.add(contentHash);
}

Colisión de hash​

¿Qué es una colisión?​

Cuando diferentes entradas generan el mismo hash:

input1 ≠ input2
hash(input1) = hash(input2) ← ¡Colisión!

Resistencia a colisiones por algoritmo​

AlgoritmoResistencia a colisionesEstado
MD5❌ Muy débilColisiones encontradas desde 2004
SHA-1❌ DébilColisión real publicada en 2017
SHA-256✅ FuerteActualmente seguro
SHA-512✅ Muy fuerteActualmente seguro

Probabilidad de colisión​

En el caso de SHA-256:

  • Número de hashes posibles: 2^256 ≈ 1.16 × 10^77
  • 50% probabilidad de colisión con paradoja del cumpleaños: Necesita 2^128 intentos
  • ¡Prácticamente imposible!

Uso por lenguaje de programación​

JavaScript (navegador)​

async function sha256(text) {
const encoder = new TextEncoder();
const data = encoder.encode(text);
const hash = await crypto.subtle.digest('SHA-256', data);
const hashArray = Array.from(new Uint8Array(hash));
return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
}

const hash = await sha256('Hello World');

JavaScript (Node.js)​

const crypto = require('crypto');

const hash = crypto.createHash('sha256')
.update('Hello World')
.digest('hex');

Python​

import hashlib

# SHA-256
hash_sha256 = hashlib.sha256('Hello World'.encode()).hexdigest()

# MD5
hash_md5 = hashlib.md5('Hello World'.encode()).hexdigest()

PHP​

<?php
// SHA-256
$hash = hash('sha256', 'Hello World');

// MD5
$hash = md5('Hello World');
?>

Bash​

# SHA-256
echo -n "Hello World" | sha256sum

# MD5
echo -n "Hello World" | md5sum

Mejores prácticas de seguridad​

✅ Uso correcto​

1. Almacenamiento de contraseñas (Salt + Hash)​

const bcrypt = require('bcrypt');

// Hash de contraseña
const hash = await bcrypt.hash(password, 10);

// Verificación
const isValid = await bcrypt.compare(password, hash);

2. Verificación de firma API​

const expectedSignature = sha256(payload + secret);
if (receivedSignature === expectedSignature) {
// Solicitud válida
}

❌ Uso incorrecto​

1. Usar solo hash simple para contraseñas​

// ¡Incorrecto!
const hash = md5(password);

// Vulnerable a ataque de tabla arcoíris

2. Usar MD5 con fines de seguridad​

// ¡Incorrecto!
const signature = md5(data + secret);

// Posible ataque de colisión

Preguntas frecuentes​

P: ¿Puedo usar MD5?​

Para fines de seguridad absolutamente no. Úsalo solo para checksum o usos no seguros.

P: ¿Puedo almacenar contraseñas con hash?​

El hash simple no es seguro. Usa algoritmos dedicados como bcrypt, argon2, scrypt.

P: ¿Cuál es mejor entre SHA-256 y SHA-512?​

  • SHA-256: Suficiente para la mayoría de casos, ampliamente usado
  • SHA-512: Más fuerte pero puede ser más lento (puede ser rápido en sistemas de 64 bits)

¡Generalmente se recomienda SHA-256!

P: ¿Se puede descifrar un hash?​

No. El hash es una función unidireccional. Sin embargo, las contraseñas débiles pueden ser adivinadas con tablas arcoíris.

Herramientas relacionadas​

Compatibilidad del navegador​

Esta herramienta usa Web Crypto API:

  • Chrome (todas las versiones) ✓
  • Firefox (todas las versiones) ✓
  • Safari 11+ ✓
  • Edge (todas las versiones) ✓

💬 ¿Te ha sido útil esta herramienta?​

Si tienes preguntas o sugerencias de mejora, ¡no dudes en darnos tu opinión!

Privacidad​

Esta herramienta funciona completamente del lado del cliente. Los datos que ingresas no se envían al servidor y solo se procesan en tu navegador.