Generador SHA-1 y búsqueda de hashes

BeetVPN

Tu entrada

Entrada

Resultados

Resultado

Tu resultado aparecerá aquí.


Comprender SHA-1

SHA-1 produce un resumen determinista de 160 bits, normalmente escrito con 40 caracteres hexadecimales. Se utilizó ampliamente para integridad de archivos, firmas y almacenamiento de contraseñas, pero las colisiones prácticas hacen que no deba elegirse para nuevas aplicaciones de seguridad.

Tamaño del resumen160 bits
Formato habitual40 caracteres hexadecimales

Generación y búsqueda en la base de datos

El generador calcula el hash de los bytes exactos de la entrada. La búsqueda compara después cada resumen con nuestro corpus multihash. Puede recuperar un texto en claro ya indexado, incluidos valores de nuestra propia investigación, pero no reconstruir texto arbitrario a partir del resumen.

Ejemplo resuelto

El resumen SHA-1 de hello es aa f4 c6 1d dc c5 e8 a2 da be de 0f 3b 48 2c d9 ae a9 43 4d sin espacios. Hello, hello y hello\n producen resultados diferentes.

¿Cómo funciona la búsqueda?

Que no haya coincidencia solo significa que el texto en claro no está en el corpus consultado. Los hashes con sal, las cadenas aleatorias, las entradas largas y las codificaciones poco habituales tienen menos probabilidades de coincidir. Para varios resúmenes, la API ofrece búsqueda por lotes en la misma base lógica.

Recomendaciones de seguridad

No utilice SHA-1 para nuevas firmas, certificados ni diseños de seguridad. Las contraseñas deben usar Argon2id, scrypt o bcrypt con una sal única. Añadir sal a SHA-1 impide las tablas precalculadas, pero no corrige su velocidad excesiva frente a intentos sin conexión.

Reproducir el cálculo

Estos ejemplos calculan el hash exacto del texto «hello» sin salto de línea final. Un espacio o un salto de línea cambiaría el resumen.

Shell
printf %s 'hello' | sha1sum
PHP
echo hash('sha1', 'hello');
JavaScript
const bytes = new TextEncoder().encode('hello');
const digest = await crypto.subtle.digest('SHA-1', bytes);

Comparación con otras variantes de SHA

SHA-1 es más largo que MD5, pero ya no resiste colisiones. SHA-256 y SHA-512 pertenecen a SHA-2 y siguen siendo adecuados para integridad cuando se usan correctamente, aunque tampoco son funciones para almacenar contraseñas.

Preguntas frecuentes

¿Qué longitud tiene un hash SHA-1?

SHA-1 produce 160 bits, es decir, 20 bytes o 40 caracteres hexadecimales.

¿Se puede descifrar SHA-1?

No. Md5Decrypt busca en su corpus una coincidencia ya calculada; no invierte matemáticamente SHA-1.

¿Por qué ya no se recomienda SHA-1?

Las colisiones prácticas demuestran que pueden construirse contenidos diferentes con el mismo resumen, lo que invalida su uso moderno para integridad frente a atacantes y firmas.

¿SHA-1 con sal es seguro para contraseñas?

Una sal evita las tablas precalculadas, pero SHA-1 sigue siendo demasiado rápido. Utilice una KDF de contraseñas configurable como Argon2id, scrypt o bcrypt.

¿Por qué no se encontró mi hash SHA-1?

El texto en claro puede estar ausente, llevar sal, ser largo o aleatorio, o haberse codificado de forma distinta a la esperada.

Notas prácticas

La búsqueda compara resúmenes SHA-1 exactos con la base de datos. El verificador de archivos es útil para comprobar integridad, pero SHA-1 ya no es adecuado para firmas modernas ni almacenamiento de contraseñas.

Longitud160 bits / 40 caracteres hexadecimales
LoteHasta 20 resúmenes
ArchivoCalcular y comparar

Preguntas frecuentes

¿Por qué se desaconseja SHA-1?

Se han demostrado colisiones prácticas. Ya no debe proteger firmas, certificados ni sistemas nuevos.

¿Para qué sirve la suma de comprobación del archivo?

Calcula el resumen de un archivo para compararlo con un valor publicado. Esta verificación es independiente de una búsqueda en la base de datos.

¿Por qué puede fallar una búsqueda?

La base de datos solo puede devolver texto ya indexado que coincida exactamente con el resumen.

Ejemplos reproducibles

Estos comandos calculan el hash de los cinco bytes UTF-8 de «hello», sin añadir un salto de línea final.

Terminal

printf %s "hello" | sha1sum

PHP

hash('sha1', 'hello');

JavaScript

const bytes = new TextEncoder().encode('hello');
const digest = await crypto.subtle.digest('SHA-1', bytes);