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.