Saltar al contenido principal

Generador de hash

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

📝 입력 텍스트

✨ 생성된 해시

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

해시 함수는 임의의 크기의 데이터를 고정된 크기의 값으로 변환합니다. 비밀번호 저장, 파일 무결성 검증 등에 사용됩니다. 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

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.