การเข้ารหัสด้วย Python - กระบวนการ XOR

ในบทนี้ให้เราเข้าใจกระบวนการ XOR พร้อมกับการเข้ารหัสใน Python

อัลกอริทึม

อัลกอริทึม XOR ของการเข้ารหัสและถอดรหัสจะแปลงข้อความธรรมดาในรูปแบบไบต์ ASCII และใช้ขั้นตอน XOR เพื่อแปลงเป็นไบต์ที่ระบุ มีข้อดีดังต่อไปนี้ให้กับผู้ใช้ -

  • การคำนวณที่รวดเร็ว
  • ไม่มีความแตกต่างในด้านซ้ายและด้านขวา
  • ง่ายต่อการเข้าใจและวิเคราะห์

รหัส

คุณสามารถใช้โค้ดต่อไปนี้เพื่อดำเนินกระบวนการ 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)

เอาต์พุต

รหัสสำหรับกระบวนการ XOR ให้ผลลัพธ์ต่อไปนี้ -

คำอธิบาย

  • ฟังก์ชั่น xor_crypt_string() มีพารามิเตอร์เพื่อระบุโหมดการเข้ารหัสและถอดรหัสและค่าสตริง

  • ฟังก์ชันพื้นฐานถูกนำมาใช้กับโมดูล base64 ซึ่งเป็นไปตามขั้นตอน / การดำเนินการ XOR เพื่อเข้ารหัสหรือถอดรหัสข้อความธรรมดา / ข้อความเข้ารหัส

Note - การเข้ารหัส XOR ใช้ในการเข้ารหัสข้อมูลและยากที่จะถอดรหัสโดยวิธี brute-force นั่นคือการสร้างคีย์เข้ารหัสแบบสุ่มเพื่อให้ตรงกับข้อความการเข้ารหัสที่ถูกต้อง