Cifrar una cadena de Python
-
Utilice
Simple Crypt
para cifrar una cadena en Python -
Utilice la biblioteca de
cryptocode
para cifrar una cadena en Python -
Utilice el paquete
Cryptography
para cifrar una cadena en Python -
Utilice el algoritmo
RSA
para cifrar una cadena en Python
El cifrado se puede definir como el proceso que transforma el texto sin formato en texto cifrado. Esencialmente, se usa para codificar los datos. El proceso de cifrado requiere una clave, que luego se puede utilizar para descifrar el mensaje original.
Este artículo discutirá los diferentes métodos que puede utilizar para cifrar una cadena en Python.
Utilice Simple Crypt
para cifrar una cadena en Python
Usar el módulo Simple Crypt
es la forma más rápida y sencilla de lograr el proceso de encriptación para Python 2.7 y 3. Este método convierte el texto plano en un texto cifrado en segundos, con la ayuda de una sola línea de código.
El módulo PyCrypto
proporciona la implementación del algoritmo para esta biblioteca y utiliza el cifrado AES256
. Este método incorpora una verificación HMAC
con el cifrado SHA256
para notificar cuando el texto cifrado es alterado o modificado.
Simple Crypt
tiene dos funciones: “cifrar” y “descifrar”. Es esencial instalar los módulos pycrypto
y Simple Crypt
para usar ambas funciones.
El siguiente código utiliza simplecrypt
para cifrar una cadena en Python:
from simplecrypt import encrypt, decrypt
passkey = "wow"
str1 = "I am okay"
cipher = encrypt(passkey, str1)
print(cipher)
La salida de este código sería un grupo de letras aleatorias.
Para decodificar / descifrar el texto cifrado, usaremos el siguiente comando:
print(decrypt("wow", cipher))
Producción :
I am okay
Utilice la biblioteca de cryptocode
para cifrar una cadena en Python
El término cryptocode
es una biblioteca simple que nos permite cifrar y descifrar cadenas de forma segura y sencilla en Python 3 o superior. Recuerde que esta biblioteca debe instalarse manualmente; se puede hacer usando el comando pip
.
El siguiente programa utiliza la biblioteca cryptocode
para cifrar una cadena en 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)
Producción :
I am okay
El primer parámetro de la función sería la cadena que debe cifrarse. El segundo parámetro debe ser la clave, que se utilizará con el propósito de descifrar.
Utilice el paquete Cryptography
para cifrar una cadena en Python
Cryptography
es un paquete de Python que se puede utilizar para lograr el cifrado de clave simétrica. El cifrado de clave simétrica es una forma en que usamos la misma clave para el proceso de codificación y decodificación.
Es necesario instalar la biblioteca Cryptography
para poder utilizar este método de cifrado; esto se puede hacer usando el comando pip
.
El siguiente código utiliza las funciones del paquete cryptography
para cifrar una cadena en 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)
Producción :
The primordial string: I am okay
The Encrypted message: <a stack of random letters>
The Decrypted message: I am okay
En el código anterior, importamos Fernet
del módulo cryptography.fernet
. Luego, generamos una clave de cifrado que se utilizará tanto para codificar como para decodificar. La clase Fernet se instancia con la clave de cifrado. Luego, la cadena se cifra con la instancia de Fernet. Finalmente, se descifra con la instancia de la clase Fernet.
El cifrado de clave simétrica es una forma sencilla de cifrar una cadena. El único inconveniente es que es comparativamente menos seguro. Cualquiera que tenga la clave puede leer el texto cifrado.
Utilice el algoritmo RSA
para cifrar una cadena en Python
El algoritmo RSA
en Python implementa el cifrado de clave asimétrica. El cifrado de clave asimétrica utiliza dos claves diferentes para el proceso de cifrado y descifrado.
Estas dos claves son la clave privada y la clave pública. La clave pública es pública y se utiliza para el proceso de cifrado. Cualquiera que tenga la clave pública puede cifrar y enviar los datos; solo el receptor tiene la clave privada. Además, alguien con acceso a él también puede descifrar los datos.
La biblioteca rsa
debe instalarse primero para utilizar este método. Puede utilizar el comando general pip
para la instalación de esta biblioteca.
El siguiente código utiliza el algoritmo RSA
para cifrar una cadena en 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)
Producción :
The primordial string: I am okay
The Encrypted message: <a stack of random letters>
The Decrypted message: I am okay
En el código anterior, se importa el módulo rsa
y las claves pública y privada se generan con la ayuda de la función rsa.newkeys()
. Luego, la cadena se cifra mediante la clave pública. A continuación, la cadena se puede descifrar utilizando sólo la clave privada. Las claves pública y privada en el caso de este programa son pubkey
y privkey
, respectivamente.
El cifrado de clave asimétrica proporciona una mayor seguridad que el cifrado de clave simétrica. Al igual que en el primero, una clave privada específica solo es accesible para el receptor y se utiliza para el propósito de descifrado. Mientras que solo existe una clave en este último, el proceso de descifrado es más fácil y menos seguro frente a ataques de terceros en medio del remitente y el receptor.
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.
LinkedInArtículo relacionado - Python String
- Eliminar comas de cadena en Python
- Cómo comprobar si una cadena está vacía de forma ptónica
- Convertir una cadena en nombre de variable en Python
- Cómo eliminar los espacios en blanco de una cadena en Python
- Cómo extraer números de una cadena en Python
- Cómo convertir una cadena a datetime en Python