Introdução à biblioteca de criptografia, com o método Fernet, no Python

O Python tem algumas bibliotecas (libraries ou módulos) que oferecem meios de trabalhar usando a segurança da criptografia.
Em tese, é fácil codificar qualquer coisa dentro de seus scripts Python.
Neste texto, vou apresentar a biblioteca cryptography, com o uso do método Fernet.
No sistema operacional Linux Debian 9 “Stretch” ela já está presente.
Se você não tiver a biblioteca instalada no seu sistema, use o pip3:


pip3 install cryptography

O pacote instala receitas e código fonte para facilitar a criptografia.
A biblioteca foi projetada para ser um ponto de parada única para todas as suas necessidades criptográficas no Python.
Como alternativa, esta tenta oferecer alguns benefícios a mais, em relação a outras implementações e metodologias:

  • Suporte ao PyPy e ao Python3.
  • Manutenção constante.
  • Algorítimos mais sofisticados e atuais.
  • Uso de “criptografia para humanos” de alto nível e APIs.
  • Suporte a AES-GCM

Exemplo de uso de criptografia

Abra a Python shell, invoque o módulo cryptography e faça um teste simples:


>>> from cryptography.fernet import Fernet
>>> chave = Fernet.generate_key()
>>> suite_cifrada = Fernet(chave)
>>> texto_cifrado = suite_cifrada.encrypt(b"uma mensagem secreta. Fora bisbilhoteiros!")
>>> texto_decifrado = suite_cifrada.decrypt(texto_cifrado)
>>> texto_cifrado
b'gAAAAABZPqoEg8urYdh6oH2Av4z9O3XHZttxQcd_9BALfqnp5RzqRPjAIiscmuRi5QnS3JUpMgboXqjDdNCyfAPKgtIoKmc2dQ5XQPjJUZoJiPfYUxMAQqTULWc9TVeugZsCRwGWKrTZ'
>>> texto_decifrado
b'uma mensagem secreta. Fora bisbilhoteiros!'

O Fernet é um método de criptografia simétrica que se certifica de que uma mensagem codificada não possa manipulada ou lida sem a chave.

O método faz uso de codificação segura URL para as suas chaves.

Não se esqueça de se inscrever na nossa newsletter, para ser notificado(a) quando houver um novo post sobre Python:

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.


A implementação é conhecida também como “secret key” e faz uso de codificação em 128-bit, em modo CBC e PKCS7 padding — com HMAC e SHA256 para autenticação.
Leia mais sobre criptografia, clicando na tag criptografia ou fernet.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 49 outros assinantes