Por que o PyCrypto requer um compilador C?

0

Existe uma biblioteca de criptografia python que não depende de nada além de python? Ou pacotes pré-compilados do PyCrypto para Linux?

    
por pinhead 25.04.2014 / 01:28

1 resposta

3

A criptografia envolve cálculos numéricos intensivos que são significativamente mais rápidos quando implementados em uma linguagem de baixo nível, como C e código compilado para máquina, do que quando implementados em uma linguagem de alto nível como Python e executados como código de bytes interpretado. É por isso que você deve esperar que qualquer biblioteca que forneça primitivas criptográficas básicas seja pelo menos parcialmente escrita em C (ou mesmo em assembler).

No entanto, o Python inclui algumas primitivas criptográficas: as hashlib e hmac fornecem os algoritmos de resumo mais comuns (MD5, SHA-1, SHA-2) e os algoritmos HMAC correspondentes.

Além disso, o Python possui aritmética inteira integrada de precisão arbitrária, que permite implementar com eficiência alguns algoritmos assimétricos em Python puro (pelo menos assinatura e verificação, não necessariamente geração de chave). Python-RSA ( rsa ) é uma implementação Python pura do RSA PKCS # 1 1.5.

O Python não é fornecido com nenhum algoritmo de criptografia (em particular, AES), porque a distribuição do código de criptografia é restrita legalmente em muitas partes do mundo. A biblioteca externa oficialmente recomendada é PyCrypto .

Você deve instalar o PyCrypto. Estaria na biblioteca padrão se não fosse por restrições legais. A maioria das distribuições inclui um pacote Pycrypto. Se o seu não (eu não estou familiarizado com o Levinux), você precisará instalar o gcc. Se a sua distribuição não tiver o gcc (ou um sistema de compilação cruzada para compilar facilmente pacotes em um sistema mais completo), ele não é adequado para trabalhos sérios.

    
por 25.04.2014 / 20:53