By | February 9, 2023

การเข้ารหัสสตริงเป็นเรื่องที่ได้รับความนิยมในทุกภาษาโปรแกรม อัลกอริทึมอย่างง่ายใน C# สำหรับการเข้ารหัสสตริงจะขึ้นอยู่กับตัวดำเนินการ xor

ตัวดำเนินการ xor เป็นรูปแบบสำหรับพลิกค่าตัวเลขที่แยกกันสามค่า ตัวอย่างเช่น สมมติว่าคุณมีค่า A และ B ตัวดำเนินการ xor จะทำงานดังนี้:

A xor B = C

C xor B = A

วิธีเดียวที่จะรับค่า C เพื่อแปลงกลับเป็น A ได้คือใช้ค่า B ที่ใช้ก่อนหน้านี้ ในแง่ของการเข้ารหัส นั่นหมายถึงค่า B จะเป็นคีย์เข้ารหัสและถอดรหัส ข้อมูลที่ใช้ตัวดำเนินการ xor สามารถกู้คืนได้โดยการรู้ว่าค่าใดถูกนำไปใช้ในตอนแรกเท่านั้น

มีปัญหาเล็กน้อยคือตัวดำเนินการ xor ใช้ได้กับค่าจำนวนเต็มและค่าบูลีนเท่านั้น ในการใช้ตัวดำเนินการ xor สำหรับการเข้ารหัสสตริง เราจะต้องแปลงข้อความเป็นตัวเลข

โชคดีที่มีตาราง ASCII ซึ่งกำหนดค่าตัวเลขเฉพาะให้กับอักขระแต่ละตัวที่คอมพิวเตอร์ใช้

ดังนั้นอัลกอริทึม C# จึงลงมาเพื่อแปลงตัวอักษร (อักขระ) แต่ละตัวในสตริงเป็นตัวเลข ใช้ตัวดำเนินการ xor และแปลงกลับเป็นตัวเลข

.Net Framework จัดการการแปลงได้อย่างง่ายดายสำหรับโปรแกรมเมอร์ แปลงถ่านเป็น int ด้วย:

Convert.ToInt32() และย้อนกลับด้วย char.ConvertFromUtf32()

ความหายนะของการเข้ารหัส xor คือมันง่ายเกินไป เนื่องจากทำทีละอักขระ รูปแบบโดยรวมของข้อความจึงถูกรักษาไว้ ทำให้ข้อความขนาดยาวสามารถกลับสู่สถานะเดิมได้ง่าย อย่างไรก็ตาม สำหรับวิธีง่ายๆ ที่รวดเร็วในการซ่อนข้อมูลไม่ให้มองเห็นได้ วิธีนี้ใช้ได้ดี