Buscando un programa multiplataforma/portátil que arroje hashes criptográficos de un archivo

Buscando un programa multiplataforma/portátil que arroje hashes criptográficos de un archivo

Estoy buscando un programa que debería ser portátil en Windows y Linux (por ejemplo, ANSI C, etc.) que genere hashes criptográficos como MD5, SHA, etc., así como CRC32 de un archivo/lista de archivos que se le pasan.

Ejecutaré este ejecutable en terabytes de archivos, generando sus firmas SHA, MD5 y CRC32 (y más en el futuro), así que acelere.es importante.

Lo que tenía en mente es exactamente lo que es ReHash.Refrito,Refrito.

Desafortunadamente, vi que muchos usuarios se han quejado de que hay errores en la implementación de los hashes, así como errores en la forma en que se implementó el relleno (para algoritmos basados ​​en bloques).

Como no soy un experto en criptografía y solo busco una solución de caja negra que simplemente me brinde los hashes que quiero sin requerir más que compilar algún código, me preguntaba si no hay nada mejor.

Por supuesto, podría escribir un programa adhesivo en Python que usaría los módulos criptográficos para generar lo que quiero, pero hubiera preferido un binario compilado de un lenguaje como C.

Ejecutaré este ejecutable en terabytes de archivos, generaré sus firmas SHA, MD5 y CRC32 (y más en el futuro) y manejaré todo esto desde código Python, por lo que sería preferible algo compatible con Python, pero no a expensas de C. como la velocidad.

Respuesta1

Las operaciones criptográficas de Python se implementan en código nativo (compilado desde C). Como desea los valores en un programa Python, usarlos será más sencillo.

Linux viene con utilidades para cálculos de suma de comprobación ( ,,, cksum... ). Lo mismo ocurre con la mayoría de los otros unices. Hay varios puertos de Windows para las utilidades GNU (que es lo que se obtiene en Linux):md5sumsha1sumCygwin,Gnuwin32,msys, ... Necesitará utilidades lo suficientemente recientes si desea obtener SHA-256 y SHA-512.

Hay varias implementaciones ANSI C con licencias muy liberales de varios algoritmos criptográficos flotando, a menudo no recopilados en una sola distribución. Puede buscarlos y probarlos con pequeñas entradas para comprobar su confiabilidad.

En Windows, asegúrese de tratar correctamente los archivos como binarios o de texto, según lo desee, ya que las sumas de verificación se definen en secuencias de bytes, no en secuencias de líneas. (Normalmente querrás abrir los archivos en modo binario, pero si tienes un archivo de texto que se transcodificó a finales de línea de Windows, necesitarás abrirlo como texto para revertir el efecto). En cualquier sistema operativo, asegúrate no realiza ninguna traducción codificada al abrir el archivo.

Dado que la velocidad es muy importante para usted, recopile todas las implementaciones que pueda encontrar y compárelas con una entrada de tamaño moderado (unos pocos megabytes). Diferentes implementaciones pueden ofrecer una mejor velocidad en diferentes arquitecturas. Es probable que las implementaciones de 64 bits sean más rápidas si es posible ejecutarlas.

Respuesta2

OpenSSL tiene herramientas que calculan hashes. El cygwin (http://www.cygwin.com/) el proyecto tiene herramientas openssl. Aunque será un poco más lento que una aplicación pura de Windows debido a la capa cygwin, también obtendrás un entorno donde puedes programar tu generación de hash.

información relacionada