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

1

Eu estou procurando um programa, que deve ser fonte portátil em Windows e Linux (por exemplo, ANSI C, etc) que gera hashes criptográficos como MD5, SHA, etc, bem como CRC32 de um arquivo / lista de arquivos passados para isso.

Eu executarei este executável em terabytes de arquivos, gerando suas assinaturas SHA, MD5 e CRC32 (e mais no futuro), então a velocidade é importante .

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

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

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

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

Eu estarei rodando 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 o preferido, mas não no despesa de C como velocidade.

    
por PoorLuzer 11.10.2010 / 00:21

2 respostas

2

As operações de criptografia em python são implementadas em código nativo (compilado a partir 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 , ...). Então faça a maioria dos outros unices. Existem várias portas Windows dos utilitários GNU (que é o que você obtém no Linux): Cygwin , Gnuwin32 , Msys , ... Você precisará de informações recentes o suficiente utilitários se você deseja obter SHA-256 e SHA-512.

Existem várias implementações ANSI C com licenças muito liberais de vários algoritmos criptográficos flutuantes, muitas vezes não coletadas em uma única distribuição. Você poderia procurá-los e testá-los em pequenas entradas 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 por fluxos de bytes, não por fluxos de linha. (Normalmente, você deseja abrir os arquivos no modo binário, mas se tiver um arquivo de texto que tenha sido transcodificado para finais de linha do Windows, será necessário abri-lo como texto para reverter o efeito.) Em qualquer sistema operacional, verifique 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 você pode encontrar e faça benchmark delas em entradas de tamanho moderado (alguns megabytes). Diferentes implementações podem dar melhor velocidade em diferentes arquiteturas. É provável que as implementações de 64 bits sejam mais rápidas onde você possa executá-las.

    
por 11.10.2010 / 01:59
2

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

    
por 11.10.2010 / 17:31