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.