Criptografar uma string Python

Vaibhhav Khetarpal 11 julho 2021
  1. Use Simple Crypt para criptografar uma string em Python
  2. Use a biblioteca cryptocode para criptografar uma string em Python
  3. Use o pacote Cryptography para criptografar uma string em Python
  4. Use o algoritmo RSA para criptografar uma string em Python
Criptografar uma string Python

A criptografia pode ser definida como o processo que transforma texto simples em texto cifrado. Essencialmente, é usado para codificar os dados. O processo de criptografia requer uma chave, que pode ser usada posteriormente para descriptografar a mensagem original.

Este artigo discutirá os diferentes métodos que você pode utilizar para criptografar uma string em Python.

Use Simple Crypt para criptografar uma string em Python

Usar o módulo Simple Crypt é a maneira mais rápida e simples de realizar o processo de criptografia para Python 2.7 e 3. Este método converte texto simples em texto cifrado em segundos, com a ajuda de uma única linha de código.

O módulo PyCrypto fornece a implementação do algoritmo para esta biblioteca e utiliza a cifra AES256. Este método incorpora uma verificação HMAC com a cifra SHA256 para notificar quando o texto cifrado é alterado ou modificado.

Simple Crypt tem duas funções:encrypt e decrypt. É essencial instalar os módulos pycrypto e Simple Crypt para usar ambas as funções.

O código a seguir usa simplecrypt para criptografar uma string em Python:

from simplecrypt import encrypt, decrypt

passkey = "wow"
str1 = "I am okay"
cipher = encrypt(passkey, str1)
print(cipher)

A saída desse código seria um agrupamento de letras aleatórias.

Para decodificar / descriptografar o texto cifrado, usaremos o seguinte comando:

print(decrypt("wow", cipher))

Resultado:

I am okay

Use a biblioteca cryptocode para criptografar uma string em Python

O termo cryptocode é uma biblioteca simples que nos permite criptografar e descriptografar strings de forma segura e simples em Python 3 ou superior. Lembre-se de que esta biblioteca precisa ser instalada manualmente; isso pode ser feito usando o comando pip.

O programa abaixo usa a biblioteca cryptocode para criptografar uma string em Python:

import cryptocode

str_encoded = cryptocode.encrypt("I am okay", "wow")
# And then to decode it:
str_decoded = cryptocode.decrypt(str_encoded, "wow")
print(str_decoded)

Resultado:

I am okay

O primeiro parâmetro na função seria a string que precisa ser criptografada. O segundo parâmetro precisa ser a chave, que será usada para fins de descriptografia.

Use o pacote Cryptography para criptografar uma string em Python

Cryptography é um pacote Python que pode ser usado para obter criptografia de chave simétrica. A criptografia de chave simétrica é uma maneira pela qual usamos a mesma chave para o processo de codificação e decodificação.

A biblioteca Cryptography precisa ser instalada para usar este método de criptografia; isso pode ser feito usando o comando pip.

O código a seguir usa as funções de pacote cryptography para criptografar uma string em Python:

from cryptography.fernet import Fernet

str1 = "I am okay"
key = Fernet.generate_key()

fernet = Fernet(key)

enctex = fernet.encrypt(str1.encode())

dectex = fernet.decrypt(enctex).decode()

print("The primordial string: ", str1)
print("The Encrypted message: ", enctex)
print("The Decrypted message: ", dectex)

Resultado:

The primordial string: I am okay
The Encrypted message: <a stack of random letters>
The Decrypted message: I am okay

No código acima, importamos Fernet do módulo cryptography.fernet. Em seguida, geramos uma chave de criptografia que será usada para fins de codificação e decodificação. A classe Fernet é instanciada com a chave de criptografia. A string é então criptografada com a instância Fernet. Finalmente, ele é descriptografado com a instância da classe Fernet.

A criptografia de chave simétrica é uma maneira fácil de criptografar uma string. A única desvantagem é que é comparativamente menos seguro. Qualquer pessoa com a chave pode ler o texto criptografado.

Use o algoritmo RSA para criptografar uma string em Python

O algoritmo RSA em Python implementa a criptografia de chave assimétrica. A criptografia de chave assimétrica usa duas chaves diferentes para o processo de criptografia e descriptografia.

Estas duas chaves são a chave privada e chave pública. A chave pública é pública e é usada para o processo de criptografia. Qualquer pessoa com a chave pública pode criptografar e enviar os dados; apenas o receptor tem a chave privada. Além disso, alguém com acesso a ele também pode descriptografar os dados.

A biblioteca rsa precisa ser instalada primeiro para usar este método. Você pode usar o comando pip geral para a instalação desta biblioteca.

O código a seguir usa o algoritmo RSA para criptografar uma string em Python:

import rsa

pubkey, privkey = rsa.newkeys(512)

str1 = "I am okay"

enctex = rsa.encrypt(str1.encode(), pubkey)


dectex = rsa.decrypt(enctex, privkey).decode()
print("The primordial string: ", str1)
print("The Encrypted message: ", enctex)
print("The Decrypted message: ", dectex)

Resultado:

The primordial string: I am okay
The Encrypted message: <a stack of random letters>
The Decrypted message: I am okay

No código acima, o módulo rsa é importado e as chaves públicas e privadas são geradas com a ajuda da função rsa.newkeys(). Em seguida, a string é criptografada usando a chave pública. A string pode então ser descriptografada usando apenas a chave privada. As chaves pública e privada no caso deste programa são pubkey e privkey, respectivamente.

A criptografia de chave assimétrica oferece melhor segurança do que a criptografia de chave simétrica. Tal como no primeiro caso, uma chave privada específica apenas está acessível ao destinatário e é utilizada para efeitos de desencriptação. Considerando que existe apenas uma chave no último, tornando o processo de descriptografia mais fácil e menos seguro contra ataques de terceiros no meio do remetente e do destinatário.

Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

Artigo relacionado - Python String