Python 密码学 - XOR 异或过程

在本章中,让我们了解 XOR 过程及其在 Python 中的编码。


算法

加解密的 XOR 异或算法将明文转换为ASCII字节格式,并使用异或程序将其转换为指定的字节。 它为用户提供以下优势 −

  • 快速计算
  • 左右两边没有区别
  • 易于理解和分析

代码

您可以使用下面的一段代码来执行异或过程 −

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)

输出

XOR 过程的代码为您提供以下输出 −

xor

说明

  • 函数 xor_crypt_string() 包含一个参数来指定编码和解码的模式以及字符串值。

  • 基础函数是采用 base64 模块,这些模块遵循 XOR 过程/操作来加密或解密明文/密文。

注意 − 异或加密用于加密数据,很难通过暴力破解,即生成随机加密密钥与正确的密文相匹配。