Mật mã với Python - Quy trình XOR

Trong chương này, chúng ta hãy hiểu quy trình XOR cùng với mã hóa của nó bằng Python.

Thuật toán

Thuật toán mã hóa và giải mã XOR chuyển đổi văn bản thuần túy ở định dạng ASCII byte và sử dụng thủ tục XOR để chuyển đổi nó thành một byte xác định. Nó cung cấp những lợi ích sau cho người dùng:

  • Tính toán nhanh
  • Không có sự khác biệt được đánh dấu ở bên trái và bên phải
  • Dễ hiểu và dễ phân tích

Bạn có thể sử dụng đoạn mã sau để thực hiện quá trình 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)

Đầu ra

Mã cho quy trình XOR cung cấp cho bạn kết quả sau:

Giải trình

  • Chức năng xor_crypt_string() bao gồm một tham số để chỉ định chế độ mã hóa và giải mã và cả giá trị chuỗi.

  • Các chức năng cơ bản được thực hiện với mô-đun base64 tuân theo quy trình / hoạt động XOR để mã hóa hoặc giải mã văn bản thuần túy / văn bản mật mã.

Note - Mã hóa XOR được sử dụng để mã hóa dữ liệu và rất khó bị bẻ khóa bằng phương pháp brute-force, tức là bằng cách tạo ra các khóa mã hóa ngẫu nhiên để khớp với văn bản mật mã chính xác.