El código de esta página no ha arrancado.

Abrir index.html directamente desde una carpeta bloquea los módulos de JavaScript, así que no pasará nada al elegir un archivo. En vez de eso, sirve la carpeta por http:

powershell -ExecutionPolicy Bypass -File serve.ps1

Abre después http://localhost:8080/.

Hash y checksum — MD5, SHA-1, SHA-256, SHA-512

Comprueba una descarga contra el número que publicó quien la distribuye, sin enviársela a nadie.

Idioma: Español
Ver el código
Tus archivos se procesan en tu navegador. No se suben para procesarlos.

Una suma de verificación es aritmética sobre los bytes del archivo, y aquí se calcula en esta página, con el procesador de este dispositivo. El archivo se lee del disco en trozos de cuatro megabytes y cada trozo se descarta en cuanto entra en la cuenta, así que en ningún momento se arma una copia completa: ni en memoria, y desde luego no en un servidor. Al otro lado de esta página no hay ningún servidor al que mandar un archivo, aunque algo aquí quisiera hacerlo.

Comprobación en directo: comprobando…

Sin conexión: comprobando…

No hace falta que nos creas. Abre las herramientas de desarrollo, mira la pestaña de red y comprueba un archivo. Ninguna petición lleva un solo byte suyo, ni su nombre ni su tamaño. O desconéctate de internet y compruébalo igual.

1 Elige uno o varios archivos

Selecciona varios archivos para comprobar una lista de sumas. Cada archivo se lee por partes, uno a uno. Una nueva selección sustituye esta selección.

2 Los checksums

MD5 y SHA-256 se calculan por defecto, porque entre los dos cubren casi cualquier página de descarga. Si marcas otro, el archivo se vuelve a leer para calcularlo: leer es la mitad lenta, así que todo lo que esté marcado antes de elegir el archivo sale de una sola pasada.

Qué checksums calcular

3 Compáralo con lo que debería ser

Pega el checksum que te dio la página de descarga. La forma da igual: hexadecimal a secas, la salida de sha256sum, un archivo SHA256SUMS entero, la forma SHA256 (archivo) = … o el atributo integrity de una etiqueta de script. Qué algoritmo es se deduce de su longitud, así que no hay nada que elegir.

Ver como Markdown

Cómo comprobar una descarga contra su checksum

  1. Elige el archivo. Arrástralo al recuadro o selecciónalo a mano. Se lee por partes directamente del disco; mientras lo haces no sale nada hacia ninguna parte, y no hay un tamaño a partir del cual la página se rinda.
  2. Deja que lo lea. MD5 y SHA-256 se calculan por defecto, en una sola pasada. La barra indica por dónde va y a qué velocidad. Una imagen de disco grande tarda más o menos lo que tardaría en copiarse, porque es la misma cantidad de lectura.
  3. Pega lo que debería dar. Lo que te haya dado la página de descarga, en la forma que sea: hexadecimal a secas, una línea de salida de sha256sum, un archivo SHA256SUMS entero o el atributo integrity de una etiqueta de script. Qué algoritmo es se deduce de su longitud, y la casilla correcta se marca sola.
  4. Lee la respuesta, no el color. La página dice en una frase si este es el archivo que describe ese checksum. Si coincide, los bytes son idénticos a los que midió quien lo publicó. Si no coincide, no lo son, y conviene volver a descargarlo antes de abrirlo.
  5. Llévate los checksums si los necesitas. Copia uno, cópialos todos o guárdalos en un archivo de texto pequeño, en la forma con el algoritmo delante que escriben las herramientas de consola. Así el nombre del algoritmo viaja junto al número.

La versión larga

Cómo comprobar una descarga contra su checksum Cómo comparar un checksum MD5 o SHA-256 en Windows, macOS y Linux o en el navegador, qué demuestra realmente que coincida, y el error que deja toda la operación en nada.

Preguntas

¿Se sube mi archivo a algún sitio?

No. Lo lee tu propio navegador desde tu disco y lo calcula en tu propio procesador, en trozos de cuatro megabytes. Esta herramienta no tiene lado servidor, y la Content-Security-Policy de la página nombra cada dirección que puede contactar: ninguna es nuestra. Desconéctate de la red y sigue funcionando.

¿Hay un límite de tamaño?

No. El archivo nunca está entero en ningún sitio: se lee por partes y cada parte se cuenta y se descarta, así que una imagen de disco de cuarenta gigabytes usa los mismos pocos megabytes de memoria que un archivo de texto. Lo que cuesta es tiempo, y la página te dice cuánto mientras avanza.

Esa es la razón de que los algoritmos estén escritos aquí en lugar de pasárselos al crypto.subtle.digest del navegador, que sería más rápido. Esa llamada recibe el mensaje entero en un solo búfer y no hay manera de darle un archivo por partes, así que usarla habría dejado el archivo más grande que puedes comprobar a merced de cuánta memoria le toque a esta pestaña. En un teléfono son unos cientos de megabytes, y lo que la gente más quiere comprobar son imágenes de disco.

El checksum coincide. ¿Qué queda demostrado exactamente?

Que los bytes que tienes en el disco son los que alguien tenía delante cuando anotó ese número. Nada más, y conviene ser preciso con los límites.

Queda demostrado que la descarga no se cortó, que no la estropeó un disco defectuoso y que no la cambiaron por el camino. No queda demostrado que el archivo sea inofensivo, porque quien lo publica puede medir software malicioso con la misma exactitud que cualquier otra cosa. Y queda demostrado muy poco si el checksum venía de la misma página y por la misma conexión que el archivo: quien pudo cambiar una cosa pudo cambiar la otra. Un checksum vale sobre todo cuando llega por otra vía: un archivo SHA256SUMS firmado, el anuncio de versión de una distribución, un segundo espejo o un gestor de paquetes que ya lo conoce.

No coincide. ¿Y ahora qué?

Primero vuelve a descargarlo, del mismo sitio. Una transferencia interrumpida o reanudada es con diferencia la causa más frecuente, y una segunda copia suele resolverlo.

Si la segunda copia da la misma respuesta equivocada, comprueba que estás comparando con la línea correcta: las páginas de versiones listan varios archivos, y el checksum de la compilación para ARM no coincidirá nunca con el de la de x86. Después comprueba la versión. Si todo eso está bien y sigue sin coincidir, no abras el archivo. Descárgalo de otro espejo y compara los dos checksums entre sí.

¿Cuál debo usar?

El que haya publicado quien distribuye el archivo. La idea es comparar con su número, y ese no lo eliges tú.

Si lo que haces es generar un checksum en lugar de comprobarlo, usa SHA-256. MD5 y SHA-1 están rotos en el sentido que importa: se pueden construir a propósito dos archivos distintos con el mismo valor, en horas con MD5 y por un gasto moderado con SHA-1. Eso no los deja inútiles frente a los accidentes, porque una descarga cortada no va a coincidir por casualidad con el original, pero sí significa que ninguno de los dos puede decirte que nadie tocó nada. SHA-384 y SHA-512 están bien y en la práctica no son mejores; están aquí porque algunos proyectos los publican.

¿Por qué está MD5 si está roto?

Porque sigue siendo lo que está impreso. Espejos, descargas de firmware, páginas de software de universidades y muchísimos sitios de fabricantes publicaron un MD5 hace veinte años y no han vuelto a tocar la página. Una herramienta que se negara a calcularlo se estaría negando a responder la pregunta con la que la gente llega de verdad.

Lo que sí puede hacer es decir cuánto vale la respuesta, y eso es lo que hace la nota junto a la casilla. Un MD5 que coincide sigue descartando una descarga estropeada. No descarta una manipulada a propósito.

¿Qué formatos puedo pegar en el cuadro de comparación?

Todos los habituales, y la página distingue sola cuál es.

Hexadecimal a secas, con espacios o sin ellos. Una línea de salida de md5sum o sha256sum, con el nombre del archivo detrás. Un archivo SHA256SUMS entero con cuarenta líneas, en cuyo caso se usa la línea que nombra tu archivo. La forma BSD, SHA256 (disk.iso) = …. Una etiqueta delante, como en SHA-256: …. Y un atributo de subresource integrity, sha384-…, que va en base64 en vez de en hexadecimal y se descodifica antes de comparar.

Qué algoritmo es se deduce de la longitud: 32 caracteres hexadecimales son un MD5, 40 un SHA-1, 64 un SHA-256, 96 un SHA-384 y 128 un SHA-512. No hay dos con la misma longitud, así que no hay nada que elegir ni nada que equivocar.

¿Dará lo mismo que sha256sum o certutil?

Sí, byte por byte. Son especificaciones exactas con vectores de prueba publicados, y cada algoritmo de aquí se comprueba en cada compilación contra esos vectores y contra la implementación del sistema operativo.

Lo único que verás distinto es la presentación. El certutil -hashfile de Windows escribe en mayúsculas y con espacios; esta página escribe en minúsculas, que es lo que usa casi todo el mundo. La comparación ignora ambas cosas, así que un checksum copiado de certutil coincide con uno en minúsculas pegado aquí.

¿Puedo comparar dos archivos entre sí?

Sí, con un paso de más: comprueba el primero, copia su checksum, elige después el segundo y pega ese checksum en el cuadro. Si los dos archivos son idénticos, la página lo dirá.

Vale la pena saberlo para el caso en el que los checksums son discretamente insuperables: decidir si la copia del disco de respaldo es de verdad el mismo archivo que el del portátil, cuando ambos dicen tener el mismo tamaño y la misma fecha.

¿Modifica mi archivo?

No. Esta herramienta solo lee. No hay archivo de salida, ni recodificación, ni nada que se escriba de vuelta: lo único que puedes descargar es un archivo de texto pequeño con los checksums. Tu original sigue intacto en el disco, que es también la respuesta honesta a qué pasa si cierras la pestaña.

¿Es gratis? ¿Hace falta una cuenta?

Es gratis, y no hay cuenta, ni registro, ni prueba. No hay límite de tamaño de archivo ni límite de cuántos compruebas. El sitio lleva publicidad, que es lo que lo paga; a la publicidad no se le da nada sobre tu archivo.

¿Funciona sin conexión?

Sí. Carga la página una vez, desconéctate de internet y sigue funcionando. Es también la manera más sencilla de comprobar que no se sube nada: una herramienta que mandara tu archivo fuera para calcularlo se detendría en el momento de desenchufar.