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.