IRONSOFTWAREHOME
AJUDA DO PYTHON

Usando PyCryptodome para criptografia em Python

Curtis Chau
Curtis Chau
Updated: 20 de junho de 2026

Na era da transformação digital, a importância de mecanismos criptográficos robustos não pode ser subestimada. A criptografia garante a segurança e a privacidade dos dados à medida que estes trafegam por diversas redes e sistemas. PyCryptodome é uma biblioteca Python que se destaca no cenário da criptografia, oferecendo uma vasta gama de funcionalidades para facilitar o manuseio seguro de dados, como modos de criptografia autenticada (GCM, CCM, EAX, SIV, OCB) e AES acelerado com suporte de primeira classe. Este artigo analisa a última versão oficial do PyCryptodome, explorando seus recursos, casos de uso, processo de instalação simplificado e como ele pode ser utilizado de forma eficaz em diversas aplicações. Também criaremos arquivos PDF criptografados usando uma biblioteca C# separada, IronPDF, com PyCryptodome.

Visão geral do PyCryptodome

PyCryptodome é um pacote Python independente de primitivas criptográficas de baixo nível. Foi projetado para ser um substituto direto da antiga biblioteca PyCrypto, resolvendo muitas de suas limitações e ampliando suas capacidades. Oferece uma ampla gama de algoritmos e protocolos criptográficos, tornando-se uma ferramenta indispensável para desenvolvedores que precisam implementar recursos de segurança em seus aplicativos.

Principais características

  1. Ampla compatibilidade com algoritmos: PyCryptodome oferece suporte a uma ampla gama de algoritmos criptográficos, incluindo AES, RSA, DSA e muitos outros. Esse amplo suporte garante que os desenvolvedores possam encontrar as ferramentas necessárias para diversas necessidades criptográficas.
  2. Facilidade de uso: A biblioteca foi projetada para ser fácil de usar, com uma API clara e concisa que permite até mesmo a pessoas com conhecimento limitado em criptografia implementar recursos de segurança de forma eficaz.
  3. Manutenção ativa: Ao contrário de seu antecessor PyCrypto, o PyCryptodome recebe manutenção ativa, com atualizações e melhorias regulares, garantindo compatibilidade com as versões mais recentes do Python e os padrões de segurança.
  4. Autossuficiente: O PyCryptodome não requer nenhuma dependência externa, o que facilita sua instalação e uso em diferentes ambientes.
  5. Integração com bibliotecas existentes: PyCryptodome pode ser integrado perfeitamente com outras bibliotecas e frameworks Python, ampliando sua utilidade em diversas aplicações.

Instalação

A instalação do PyCryptodome é um processo simples, graças à sua natureza autossuficiente. Ele pode ser instalado via pip, o instalador de pacotes do Python, usando o seguinte comando:

pip install pycryptodome
SHELL

Conceitos e Módulos Essenciais

PyCryptodome está organizado em vários módulos, cada um dedicado a diferentes aspectos da criptografia. Compreender esses módulos é crucial para aproveitar a biblioteca de forma eficaz.

Hashing

As funções hash são fundamentais para a criptografia, fornecendo uma maneira de produzir um valor hash de tamanho fixo a partir de dados arbitrários. O PyCryptodome suporta vários algoritmos de hash através do módulo Crypto.Hash.

Exemplo de utilização da função hash SHA-256

from Crypto.Hash import SHA256

# Create a new SHA-256 hash object
hash_object = SHA256.new(data=b'Hello, PyCryptodome!')

# Output the hexadecimal digest of the hash
print(hash_object.hexdigest())
Python

PyCryptodome (Como Funciona Para Desenvolvedores): Figura 1 - Saída de Hashing

Criptografia Simétrica

A criptografia simétrica envolve o uso da mesma chave tanto para a criptografia quanto para a descriptografia. O módulo Crypto.Cipher do PyCryptodome suporta vários cifradores simétricos, incluindo AES, DES e mais.

Exemplo de criptografia e descriptografia AES

from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes

# Generate a random AES key
key = get_random_bytes(16)  # 16 bytes for AES-128

# Create a new AES cipher in EAX mode for encryption
cipher = AES.new(key, AES.MODE_EAX)
data = b'Secret Message'

# Encrypt the data and get the nonce, ciphertext and tag
nonce = cipher.nonce
ciphertext, tag = cipher.encrypt_and_digest(data)

# Create a new AES cipher in EAX mode for decryption
cipher = AES.new(key, AES.MODE_EAX, nonce=nonce)
plaintext = cipher.decrypt(ciphertext)

# Verify the authenticity of the message
try:
    cipher.verify(tag)
    print("The message is authentic:", plaintext)
except ValueError:
    print("Key incorrect or message corrupted")
Python

PyCryptodome (Como Funciona Para Desenvolvedores): Figura 2 - Saída de AES

Criptografia Assimétrica

A criptografia assimétrica utiliza um par de chaves: uma chave pública para criptografia e uma chave privada para descriptografia. O módulo Crypto.PublicKey do PyCryptodome oferece suporte para RSA, DSA e ECC (Criptografia de Curva Elíptica).

Exemplo de criptografia e descriptografia RSA

from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP

# Generate an RSA key pair
key = RSA.generate(2048)
public_key = key.publickey()

# Encrypt the message using the public key
cipher = PKCS1_OAEP.new(public_key)
ciphertext = cipher.encrypt(b'Secret Message')

# Decrypt the message using the private key
cipher = PKCS1_OAEP.new(key)
plaintext = cipher.decrypt(ciphertext)
print(plaintext)
Python

PyCryptodome (Como Funciona Para Desenvolvedores): Figura 3 - Saída de RSA

Derivação chave

As funções de derivação de chaves geram chaves criptográficas a partir de uma senha ou frase secreta. Isso é particularmente útil na criptografia baseada em senhas. PyCryptodome suporta PBKDF2, scrypt e outros algoritmos de derivação de chaves.

Exemplo de utilização do PBKDF2

from Crypto.Protocol.KDF import PBKDF2
from Crypto.Random import get_random_bytes

# Define a password and generate a salt
password = b'my secret password'
salt = get_random_bytes(16)

# Derive a key from the password and salt using PBKDF2
key = PBKDF2(password, salt, dkLen=32, count=1000000)
print(key)
Python

PyCryptodome (Como Funciona Para Desenvolvedores): Figura 4 - Saída de PBKDF2

Casos de uso

Gerenciamento de senhas

Os gerenciadores de senhas se beneficiam das funções de derivação de chaves do PyCryptodome para armazenar e recuperar senhas de usuários com segurança. Ao utilizar algoritmos robustos de derivação de chaves, como o PBKDF2, os desenvolvedores podem garantir que as senhas armazenadas sejam resistentes a ataques de força bruta.

Exemplo de como proteger senhas

from Crypto.Protocol.KDF import PBKDF2
from Crypto.Random import get_random_bytes
from Crypto.Cipher import AES

# Derive a strong key from a password
password = b'user_password'
salt = get_random_bytes(16)
key = PBKDF2(password, salt, dkLen=32, count=1000000)

# Encrypt the password before storing
cipher = AES.new(key, AES.MODE_EAX)
stored_password = b'ActualPassword'
nonce = cipher.nonce
ciphertext, tag = cipher.encrypt_and_digest(stored_password)

# Store ciphertext, nonce, salt, and tag securely
password_data = {
    'ciphertext': ciphertext,
    'nonce': nonce,
    'salt': salt,
    'tag': tag
}

# Decrypt the password when needed
key = PBKDF2(password, password_data['salt'], dkLen=32, count=1000000)
cipher = AES.new(key, AES.MODE_EAX, nonce=password_data['nonce'])
plaintext = cipher.decrypt(password_data['ciphertext'])

# Verify the authenticity of the password
try:
    cipher.verify(password_data['tag'])
    print("The stored password is authentic:", plaintext)
except ValueError:
    print("Key incorrect or password corrupted")
Python

PyCryptodome (Como Funciona Para Desenvolvedores): Figura 5 - Saída de Proteção de Senha

IronPDF for Python

IronPDF é uma poderosa biblioteca para Python voltada para geração de PDFs, que permite aos desenvolvedores criar, editar e manipular documentos PDF sem esforço. Oferece uma ampla gama de funcionalidades, desde a conversão de HTML para PDF até a fusão de vários PDFs, tornando-se uma escolha ideal para automatizar fluxos de trabalho de documentos. Quando combinada com o PyCryptodome, uma biblioteca robusta para operações criptográficas, os desenvolvedores podem adicionar recursos de segurança aos seus documentos PDF, como criptografia e assinaturas digitais. Essa integração é particularmente útil para aplicações que exigem altos níveis de segurança e integridade de dados, como em ambientes financeiros, jurídicos ou confidenciais.

Para instalar o IronPDF, você pode usar pip, o gerenciador de pacotes do Python. Veja como começar:

pip install ironpdf

PyCryptodome (Como Funciona Para Desenvolvedores): Figura 6 - IronPDF

Após a instalação, você poderá começar a usar o IronPDF para criar e manipular PDFs. Abaixo, um exemplo simples demonstrando como criar um PDF com o IronPDF e, em seguida, usar o PyCryptodome para criptografá-lo:

from ironpdf import ChromePdfRenderer
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad
import os

# Create a new PDF renderer
renderer = ChromePdfRenderer()

# Render a URL as a PDF and save it
pdfFromUrl = renderer.RenderUrlAsPdf("https://ironpdf.com/")
pdfFromUrl.SaveAs("output.pdf")

# Function to encrypt a file using AES
def encrypt_file(file_name, key):
    cipher = AES.new(key, AES.MODE_CBC)  # Use AES in CBC mode
    iv = cipher.iv
    with open(file_name, 'rb') as f:
        data = f.read()
    encrypted_data = iv + cipher.encrypt(pad(data, AES.block_size))
    with open(file_name + '.enc', 'wb') as f:
        f.write(encrypted_data)

# Example usage
key = os.urandom(16)  # AES key must be either 16, 24, or 32 bytes long
encrypt_file("output.pdf", key)
Python

Este script demonstra a criação de um PDF simples usando o IronPDF e, em seguida, criptografá-lo usando AES do PyCryptodome, fornecendo uma base para a construção de aplicativos de manipulação de PDF mais complexos e seguros.

PyCryptodome (Como Funciona Para Desenvolvedores): Figura 7 - Saída do Arquivo Criptografado

Conclusão

Em conclusão, PyCryptodome é uma biblioteca Python poderosa e versátil que aprimora significativamente as operações criptográficas para desenvolvedores, oferecendo uma ampla gama de algoritmos e fácil integração com outras ferramentas como o IronPDF. Com seu conjunto abrangente de recursos, incluindo suporte para modos de criptografia autenticada, criptografia simétrica e assimétrica, hashing e derivação de chaves, o PyCryptodome atende às necessidades de aplicações modernas que exigem medidas de segurança robustas. Sua facilidade de uso, manutenção ativa e natureza autossuficiente o tornam uma ferramenta indispensável para implementar o tratamento seguro de dados em diversos cenários, desde o gerenciamento de senhas até a geração e criptografia seguras de documentos, garantindo a integridade e a confidencialidade dos dados em um mundo cada vez mais digital.

Para obter detalhes sobre o licenciamento do IronPDF , consulte a página de licença do IronPDF . Para explorar mais a fundo, confira nosso tutorial completo sobre como converter HTML em PDF.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.