Procurando por um programa multiplataforma/portátil que emita hashes criptográficos de um arquivo

Procurando por um programa multiplataforma/portátil que emita hashes criptográficos de um arquivo

Estou procurando um programa que seja portátil para Windows e Linux (por exemplo, ANSI C, etc.) que gere hashes criptográficos como MD5, SHA, etc., bem como CRC32 de um arquivo/lista de arquivos passados ​​​​para ele.

Estarei executando este executável em terabytes de arquivos, gerando suas assinaturas SHA, MD5 e CRC32 (e mais no futuro), para aceleraré importante.

O que eu tinha em mente é exatamente o que é ReHashReHash,ReHash.

Infelizmente, vi que muitos usuários reclamaram que há erros na implementação dos hashes, bem como erros na forma como o preenchimento (para algoritmos baseados em blocos) foi implementado.

Não sendo nenhum especialista em criptografia e apenas procurando uma solução de caixa preta que simplesmente me forneça os hashes que desejo, sem exigir que eu, mais do que compilar algum código, fiquei me perguntando se não há nada melhor?

Eu poderia, é claro, escrever um programa cola em Python que usaria os módulos criptográficos para gerar o que eu quero, mas eu teria preferido um binário compilado de uma linguagem como C.

Estarei executando este executável em terabytes de arquivos, gerando suas assinaturas SHA, MD5 e CRC32 (e mais no futuro) e lidando com tudo isso a partir do código Python, então algo compatível com Python seria preferido, mas não às custas de C como velocidade.

Responder1

As operações criptográficas do python são implementadas em código nativo (compilado de C). Como você deseja os valores em um programa python, usá-los será mais simples.

O Linux vem com utilitários para cálculos de soma de verificação ( cksum, md5sum, sha1sum, ...). O mesmo acontece com a maioria das outras unidades. Existem várias portas Windows dos utilitários GNU (que é o que você obtém no Linux):Cygwin,Gnuwin32,Msys, ... Você precisará de utilitários recentes o suficiente se quiser obter SHA-256 e SHA-512.

Existem várias implementações ANSI C com licenças muito liberais de vários algoritmos criptográficos circulando, muitas vezes não coletados em uma única distribuição. Você pode procurá-los e testá-los com pequenas informações para verificar sua confiabilidade.

No Windows, certifique-se de tratar corretamente os arquivos como binários ou texto conforme desejado, pois as somas de verificação são definidas em fluxos de bytes, não em fluxos de linha. (Normalmente você desejaria abrir os arquivos no modo binário, mas se tiver um arquivo de texto que foi transcodificado para terminações de linha do Windows, será necessário abri-lo como texto para reverter o efeito.) Em qualquer sistema operacional, certifique-se de que você não faz nenhuma tradução de codificação ao abrir o arquivo.

Como a velocidade é muito importante para você, reúna todas as implementações que puder encontrar e compare-as com entradas de tamanho moderado (alguns megabytes). Diferentes implementações podem proporcionar melhor velocidade em diferentes arquiteturas. As implementações de 64 bits provavelmente serão mais rápidas onde você puder executá-las.

Responder2

OpenSSL possui ferramentas que calculam hashes. O cigwin (http://www.cygwin.com/) o projeto possui ferramentas openssl. Embora seja um pouco mais lento do que um aplicativo puro do Windows por causa da camada cygwin, você também terá um ambiente onde poderá criar scripts para sua geração de hash.

informação relacionada