Crypter une chaîne Python

Vaibhhav Khetarpal 30 janvier 2023
  1. Utilisez Simple Crypt pour crypter une chaîne en Python
  2. Utiliser la bibliothèque cryptocode pour crypter une chaîne en Python
  3. Utiliser le package Cryptography pour crypter une chaîne en Python
  4. Utiliser l’algorithme RSA pour chiffrer une chaîne en Python
Crypter une chaîne Python

Le cryptage peut être défini comme le processus qui transforme le texte brut en texte chiffré. Essentiellement, il est utilisé pour coder les données. Le processus de chiffrement nécessite une clé, qui peut ensuite être utilisée pour déchiffrer le message d’origine.

Cet article discutera des différentes méthodes que vous pouvez utiliser pour chiffrer une chaîne en Python.

Utilisez Simple Crypt pour crypter une chaîne en Python

L’utilisation du module Simple Crypt est le moyen le plus rapide et le plus simple de réaliser le processus de cryptage pour Python 2.7 et 3. Cette méthode convertit le texte brut en texte chiffré en quelques secondes, à l’aide d’une seule ligne de code.

Le module PyCrypto fournit l’implémentation de l’algorithme pour cette bibliothèque, et il utilise le chiffrement AES256. Cette méthode intègre une vérification HMAC avec le chiffrement SHA256 pour notifier lorsque le texte chiffré est altéré ou modifié.

Simple Crypt a deux fonctions : encrypt et decrypt. Il est essentiel d’installer les modules pycrypto et simplecrypt pour utiliser ces deux fonctions.

Le code suivant utilise simplecrypt pour crypter une chaîne en Python :

from simplecrypt import encrypt, decrypt

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

La sortie de ce code serait un groupe de lettres aléatoires.

Pour décoder/déchiffrer le texte chiffré, nous utiliserons la commande suivante :

print(decrypt("wow", cipher))

Production:

I am okay

Utiliser la bibliothèque cryptocode pour crypter une chaîne en Python

Le terme cryptocode est une bibliothèque simple qui nous permet de crypter et de décrypter des chaînes de manière sécurisée et simple en Python 3 ou supérieur. N’oubliez pas que cette bibliothèque doit être installée manuellement ; cela peut être fait à l’aide de la commande pip.

Le programme ci-dessous utilise la bibliothèque cryptocode pour crypter une chaîne 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)

Production:

I am okay

Le premier paramètre de la fonction serait la chaîne qui doit être chiffrée. Le deuxième paramètre doit être la clé, qui sera utilisée à des fins de déchiffrement.

Utiliser le package Cryptography pour crypter une chaîne en Python

Cryptography est un package Python qui peut être utilisé pour réaliser un cryptage à clé symétrique. Le chiffrement à clé symétrique est un moyen par lequel nous utilisons la même clé pour le processus d’encodage et de décodage.

La bibliothèque Cryptography doit être installée afin d’utiliser cette méthode de cryptage ; cela peut être fait en utilisant la commande pip.

Le code suivant utilise les fonctions du package cryptography pour chiffrer une chaîne 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)

Production:

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

Dans le code ci-dessus, nous importons Fernet depuis le module cryptography.fernet. Ensuite, nous générons une clé de cryptage qui sera utilisée à la fois à des fins d’encodage et de décodage. La classe Fernet est instanciée avec la clé de chiffrement. La chaîne est ensuite chiffrée avec l’instance Fernet. Enfin, il est déchiffré avec l’instance de classe Fernet.

Le chiffrement à clé symétrique est un moyen simple de chiffrer une chaîne. Le seul inconvénient est qu’il est relativement moins sécurisé. Toute personne possédant la clé peut lire le texte crypté.

Utiliser l’algorithme RSA pour chiffrer une chaîne en Python

L’algorithme RSA en Python implémente le chiffrement à clé asymétrique. Le chiffrement à clé asymétrique utilise deux clés différentes pour le processus de chiffrement et de déchiffrement.

Ces deux clés sont la clé privée et la clé publique. La clé publique est publique et est utilisée pour le processus de cryptage. Toute personne disposant de la clé publique peut crypter et envoyer les données ; seul le destinataire possède la clé privée. De plus, une personne qui y a accès peut également déchiffrer les données.

La bibliothèque rsa doit d’abord être installée pour utiliser cette méthode. Vous pouvez utiliser la commande générale pip pour l’installation de cette librairie.

Le code suivant utilise l’algorithme RSA pour chiffrer une chaîne 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)

Production:

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

Dans le code ci-dessus, le module rsa est importé, et les clés publiques et privées sont générées à l’aide de la fonction rsa.newkeys(). Ensuite, la chaîne est chiffrée à l’aide de la clé publique. La chaîne peut ensuite être déchiffrée en utilisant uniquement la clé privée. Les clés publiques et privées dans le cas de ce programme sont respectivement pubkey et privkey.

Le chiffrement à clé asymétrique offre une meilleure sécurité que le chiffrement à clé symétrique. Comme dans le premier cas, une clé privée spécifique n’est accessible qu’au récepteur et est utilisée à des fins de décryptage. Alors qu’il n’existe qu’une seule clé dans ce dernier, ce qui rend le processus de déchiffrement plus facile et moins sécurisé contre les attaques des tiers entre l’expéditeur et le destinataire.

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

Article connexe - Python String

Article connexe - Python Encryption