Crittografia con Python - Processo XOR

In questo capitolo, comprendiamo il processo XOR insieme alla sua codifica in Python.

Algoritmo

L'algoritmo XOR di crittografia e decrittografia converte il testo normale nel formato ASCII byte e utilizza la procedura XOR per convertirlo in un byte specificato. Offre i seguenti vantaggi ai suoi utenti:

  • Calcolo veloce
  • Nessuna differenza segnata nel lato sinistro e destro
  • Facile da capire e analizzare

Codice

È possibile utilizzare la seguente parte di codice per eseguire il processo 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)

Produzione

Il codice per il processo XOR fornisce il seguente output:

Spiegazione

  • La funzione xor_crypt_string() include un parametro per specificare la modalità di codifica e decodifica e anche il valore della stringa.

  • Le funzioni di base sono prese con i moduli base64 che seguono la procedura / operazione XOR per crittografare o decrittografare il testo normale / testo cifrato.

Note - La crittografia XOR viene utilizzata per crittografare i dati ed è difficile da decifrare con il metodo della forza bruta, ovvero generando chiavi di crittografia casuali da abbinare al testo cifrato corretto.