ใบงานที่ 6.5
ถอดรหัสลับจารชน
ให้เขียนโปรแกรมเพื่อแก้ปัญหาตามสถานการณ์ต่อไปนี้
ท่านได้รับการติดต่อจากสำนักงานตำรวจสากลเพื่อล้วงข้อมูลจากจดหมายอิเล็กทรอนิคส์ที่ใช้
ติดต่อกันระหว่างผู้ก่อการร้ายข้ามชาติ
(เรื่องราวในโจทย์เป็นเรื่องที่แต่งขึ้นโดยไม่เกี่ยวข้องกับบุคคล
สถานที่
หรือเหตุการณ์ที่มีอยู่จริง) อย่างไรก็ตามข้อความที่ดักจับมาได้นั้นถูกเข้ารหัสเอาไว้ทำให้ไม่สามารถ
อ่านเข้าใจได้โดยง่าย
หลังจากการลองผิดลองถูกนานนับปีและการเสี่ยงชีวิตนับครั้งไม่ถ้วนเพื่อแฝงตัวเข้าไป
ในกลุ่มผู้ก่อการร้ายในที่สุดท่านก็ได้ล้วงความลับเรื่องกรรมวิธีการเข้ารหัสซึ่งเป็นไปตามกฏเกณฑ์อันแสน
ซับซ้อนดังนี้
• ตัวหนังสือถูกพิมพ์จากขวาไปซ้าย
แทนที่จะเป็นซ้ายไปขวาเหมือนปกติ
• อักขระ 'R' ถูกแทนด้วยอักขระ 'E' ในการเข้ารหัส
• อักขระ 'W' ถูกแทนด้วยอักขระ 'R' ในการเข้ารหัส
• อักขระ 'E' ถูกแทนด้วยอักขระ 'W' ในการเข้ารหัส
• อักขระอื่น ๆ
รวมถึงตัวเลขและสัญลักษณ์ต่าง ๆ ไม่มีการเปลี่ยนแปลงใด ๆ
เมื่อได้ข้อมูลสำคัญเหล่านี้มาแล้ว
ท่านจึงตัดสินใจเขียนโปรแกรมภาษา C# ขึ้นมาเพื่อเพิ่มความ
รวดเร็วในการถอดรหัส
โปรแกรมนี้จะรับข้อความที่ถูกเข้ารหัสเอาไว้และรายงานผลลัพธ์ออกมาเป็น
ข้อความที่ถูกถอดรหัสแล้ว
ดังตัวอย่าง
Enter text: SNOPAWR
WEOM DWWN
NEED
MORE WEAPONS
|
using System;
class CountE
{
static void Main()
{
Console.Write("Enter a string: ");
string
s = Console.ReadLine();
Char[]
input = new Char[s.Length];
int i
= s.Length - 1;
foreach
(char c in s
)
{
input[i] = c;
i--;
}
for
(i = 0; i < s.Length; i++)
{
if
(input[i] == 'E')
Console.Write('R');
else
if (input[i] == 'R')
Console.Write('W');
else
if (input[i] == 'W')
Console.Write('E');
else
Console.Write("{0}", input[i]);
}
Console.Read();
}
}
|
จากนั้นลองใช้โปรแกรมที่เขียนขึ้นมาถอดรหัสข้อความต่อไปนี้
LUFITUAWB SI WFIL
ถอดรหัสได้เป็น =
BEAUTIFUL
GNIMMAEGOEP WVOL I
ถอดรหัสได้เป็น = I
LOVE PROGRAMMING
UOY HTIR WB WCEOF WHT YAM
ถอดรหัสได้เป็น =
MAY THE FORCE BE WITH YOU
ไม่มีความคิดเห็น:
แสดงความคิดเห็น