Cryptographie avec Python - Processus XOR

Dans ce chapitre, laissez-nous comprendre le processus XOR ainsi que son codage en Python.

Algorithme

L'algorithme XOR de chiffrement et de déchiffrement convertit le texte brut au format octets ASCII et utilise la procédure XOR pour le convertir en un octet spécifié. Il offre les avantages suivants à ses utilisateurs -

  • Calcul rapide
  • Aucune différence marquée du côté gauche et du côté droit
  • Facile à comprendre et à analyser

Code

Vous pouvez utiliser le morceau de code suivant pour effectuer le processus XOR -

def xor_crypt_string(data, key = 'awesomepassword', encode = False, decode = False):
   from itertools import izip, cycle
   import base64
   
   if decode:
      data = base64.decodestring(data)
   xored = ''.join(chr(ord(x) ^ ord(y)) for (x,y) in izip(data, cycle(key)))
   
   if encode:
      return base64.encodestring(xored).strip()
   return xored
secret_data = "XOR procedure"

print("The cipher text is")
print xor_crypt_string(secret_data, encode = True)
print("The plain text fetched")
print xor_crypt_string(xor_crypt_string(secret_data, encode = True), decode = True)

Production

Le code pour le processus XOR vous donne la sortie suivante -

Explication

  • La fonction xor_crypt_string() inclut un paramètre pour spécifier le mode d'encodage et de décodage ainsi que la valeur de la chaîne.

  • Les fonctions de base sont prises avec des modules base64 qui suivent la procédure / opération XOR pour crypter ou décrypter le texte brut / texte chiffré.

Note - Le cryptage XOR est utilisé pour crypter les données et est difficile à craquer par la méthode de la force brute, c'est-à-dire en générant des clés de cryptage aléatoires pour correspondre au texte de cryptage correct.