การเข้ารหัสด้วย 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 นั่นคือการสร้างคีย์เข้ารหัสแบบสุ่มเพื่อให้ตรงกับข้อความการเข้ารหัสที่ถูกต้อง