Cryptography em Python: Guia Completo de Criptografia Segura

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Cryptography em Python: Guia Completo de Criptografia Segura

No mundo digital atual, a segurança criptográfica tornou-se parte essencial de qualquer projeto sério. Seja para proteger dados de usuários, transmitir informações com segurança entre serviços ou armazenar documentos confidenciais — tudo isso exige o uso de métodos criptográficos confiáveis.

A biblioteca Cryptography para Python é uma ferramenta poderosa e versátil que combina simplicidade de uso com um nível profissional de segurança. Ela oferece tanto soluções de alto nível para tarefas do dia a dia quanto acesso de baixo nível a primitivas criptográficas para casos especializados.

O que é a biblioteca Cryptography

Cryptography é uma biblioteca criptográfica moderna para Python que fornece receitas e primitivas para desenvolvedores Python. Criada pela equipe PyCA (Python Cryptographic Authority), ela rapidamente se tornou o padrão de fato para operações criptográficas no ecossistema Python.

Princípios fundamentais da biblioteca:

  • Segurança por padrão
  • Facilidade de uso
  • Alta performance com bindings em C
  • Conformidade com padrões
  • Suporte ativo da comunidade

Instalação e configuração

A instalação da biblioteca é feita através do gerenciador de pacotes pip:

pip install cryptography

Para funcionalidades adicionais, pode ser necessário instalar dependências:

# Para trabalhar com SSH
pip install cryptography[ssh]

# Instalação completa com todas as dependências
pip install cryptography[all]

Arquitetura da biblioteca Cryptography

Arquitetura em dois níveis

A biblioteca é construída com base em uma arquitetura de dois níveis:

High-Level Recipes (Receitas de alto nível)

  • Soluções prontas para tarefas comuns
  • Configurações seguras por padrão
  • Mínimo de código para máximo resultado
  • Exemplos: Fernet, X.509 certificate builder

Low-Level Primitives (Primitivas de baixo nível)

  • Controle total sobre operações criptográficas
  • Flexibilidade na configuração de parâmetros
  • Acesso a algoritmos especializados
  • Exemplos: AES em vários modos, curvas elípticas

Vantagens da arquitetura

  • Segurança: a API de alto nível previne erros comuns
  • Flexibilidade: acesso de baixo nível para casos especiais
  • Performance: uso do OpenSSL e bindings C próprios
  • Compatibilidade: suporte a formatos e protocolos padrão

Criptografia simétrica com Fernet

O que é Fernet

Fernet é um algoritmo de criptografia simétrica de alto nível que oferece:

  • Criptografia AES-128 no modo CBC
  • HMAC-SHA256 para verificação de autenticidade
  • Carimbos de data/hora para controle de TTL
  • Codificação Base64URL do resultado

Operações básicas com Fernet

Geração de chave:

from cryptography.fernet import Fernet

# Geração de uma nova chave
key = Fernet.generate_key()
print(f"Chave: {key}")

Salvando a chave em um arquivo:

# Salvando a chave com segurança
with open("secret.key", "wb") as key_file:
    key_file.write(key)

# Carregando a chave do arquivo
with open("secret.key", "rb") as key_file:
    loaded_key = key_file.read()

Criptografando dados:

# Criando o objeto de criptografia
cipher_suite = Fernet(key)

# Criptografando                    

Recommendations