บทความทั้งหมด

ROT13 และรหัสซีซาร์: การแทนที่อักขระแบบง่าย

ROT13 เลื่อนเฉพาะตัวอักษรละติน A–Z และ a–z เท่านั้น — หากนำข้อความภาษาไทยผ่านเข้าไป อักษรไทยจะไม่เปลี่ยนแปลงเลย เพราะอัลกอริทึมไม่รู้จักอักขระที่อยู่นอกช่วงแคบ ๆ นี้ตั้งแต่แรก

เหตุใดอักษรไทยจึงไม่ถูกเข้ารหัส

ROT13 แบบคลาสสิกเป็นเพียงตารางแทนที่สำหรับตัวอักษรละติน 26 ตัวเท่านั้น อักษรไทยอยู่ในช่วง Unicode ที่ต่างออกไปโดยสิ้นเชิง และไม่มีอักษรไทยตัวใดที่ตรงกับ A–Z/a–z ของละติน ดังนั้นการใช้ ROT13 กับคำว่า "สวัสดี" จะได้ผลลัพธ์เป็น "สวัสดี" เหมือนเดิมทุกประการ

ทำไมการเลื่อนตัวอักษรแบบนี้ใช้ไม่ได้กับภาษาไทย

ภาษาไทยเขียนติดกันโดยไม่มีช่องว่างระหว่างคำ และมีสระ วรรณยุกต์ที่วางเหนือหรือใต้พยัญชนะเป็นอักขระ Unicode แยกต่างหาก การจะสร้างรหัสเลื่อนแบบ ROT13 สำหรับภาษาไทยให้ได้ผลจริง จะต้องตัดสินใจว่าจะเลื่อนเฉพาะพยัญชนะ สระ หรือทั้งหมดรวมกัน ซึ่งซับซ้อนกว่าการเลื่อนตัวอักษรเดี่ยว ๆ ในภาษาที่ใช้อักษรละตินมาก

ROT13 ยังถูกใช้ที่ไหนบ้าง

  • ซ่อนสปอยล์ในข้อความภาษาอังกฤษบนฟอรัมนานาชาติ
  • ตัวอย่างการสอนเพื่ออธิบายรหัสแบบแทนที่
  • การทำให้ข้อความละตินสับสนเล็กน้อย — ไม่มีผลใด ๆ กับภาษาไทย

เหตุใดนี่จึงไม่ใช่การปกป้องข้อมูล

ROT13 ไม่ใช้คีย์และย้อนกลับได้ทันที — นี่คือการทำให้สับสน ไม่ใช่การเข้ารหัสลับ ไม่ว่าจะเป็นภาษาไทยหรือภาษาใด การปกป้องข้อมูลจริงต้องใช้อัลกอริทึมที่มีคีย์อย่าง AES

ลองใช้เครื่องมือ