Criptografia com Python - Processo XOR
Neste capítulo, vamos entender o processo XOR junto com sua codificação em Python.
Algoritmo
O algoritmo XOR de criptografia e descriptografia converte o texto simples no formato ASCII bytes e usa o procedimento XOR para convertê-lo em um byte especificado. Ele oferece as seguintes vantagens aos seus usuários -
- Computação rápida
- Nenhuma diferença marcada no lado esquerdo e direito
- Fácil de entender e analisar
Código
Você pode usar o seguinte trecho de código para realizar o 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)
Resultado
O código para o processo XOR fornece a seguinte saída -
Explicação
A função xor_crypt_string() inclui um parâmetro para especificar o modo de codificação e decodificação e também o valor da string.
As funções básicas são obtidas com módulos base64 que seguem o procedimento / operação XOR para criptografar ou descriptografar o texto simples / texto cifrado.
Note - A criptografia XOR é usada para criptografar dados e é difícil de quebrar pelo método de força bruta, isto é, gerando chaves de criptografia aleatórias para corresponder ao texto cifrado correto.