Generador de hash
Herramienta gratuita en línea para generar hash MD5, SHA-1, SHA-256, SHA-512.
📝 입력 텍스트
✨ 생성된 해시
해시 함수는 임의의 크기의 데이터를 고정된 크기의 값으로 변환합니다. 비밀번호 저장, 파일 무결성 검증 등에 사용됩니다. SHA-256이 현재 가장 권장되는 알고리즘입니다.
¿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
| Algoritmo | Resistencia a colisiones | Estado |
|---|---|---|
| MD5 | ❌ Muy débil | Colisiones encontradas desde 2004 |
| SHA-1 | ❌ Débil | Colisión real publicada en 2017 |
| SHA-256 | ✅ Fuerte | Actualmente seguro |
| SHA-512 | ✅ Muy fuerte | Actualmente 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
- Codificador Base64 - Codificación/decodificación Base64
- Generador UUID - Generación de identificador único
- Generador de contraseñas - Generación de contraseña fuerte
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.