home
         อยากทราบว่าการเข้ารหัสแบบ Caesar Substitution Ciphers คืออะไรและมีวิธีการทำงานอย่างไร?

Caesar Substitution Ciphers
• เป็นการแทนค่าแต่ละตัวอักษรด้วยสัญลักษณ์เพียงตัวเดียว เป็นวิธีทีง่ายที่สุด ใช้มาตั้งแต่สมัยจูเลียส ซีซาร์ ในการเข้ารหัสเนื้อความจดหมายส่งไปให้ทัพทหารระหว่างการรบ

• ตัวอย่าง ใช้ความสัมพันธ์ของอักษรในภาษาอังกฤษ 26 ตัว โดยที่ ตัวอักษรใน Cipher Text จะได้จาก Plain Text + ไปยัง 3 ลำดับของตัวอักษรในภาษาอังกฤษ
ในทางกลับกัน Plain Text จะเท่ากับ Cipher Text - ไปยัง 3 ลำดับของตัวอักษรในภาษาอังกฤษ

Plain Text : a b c d e f g h I j k l m n o p q r s t u v w x y z

Cipher Text : d e f g h I j k l m n o p q r s t u v w x y z a b c

เช่น Love You เข้ารหัสแล้วเป็น 0ryh brx

วิธีนี้เมื่อมีการขโมย Cipher Text สามารถถอดได้ไม่ยากนัก เนื่องจากมีคำตอบที่เป็นไปทั้งหมด 25 คำตอบ
• โดยทดสอบการแทนที่ตัวอักษรไปเรื่อยๆ ก็จะเจอข้อความที่สามารถอ่านได้

• การถอดรหัสข้อมูล 0ryh brx
ลำดับตัวอักษร a b c d e f g h I j k l m n o p q r s t u v w x y z
เลื่อนกลับ 1 ตำแหน่ง : nqxq aqw
เลื่อนกลับ 2 ตำแหน่ง : mpwf zpv
เลื่อนกลับ 3 ตำแหน่ง : love you ? จะเจอคำที่สามารถอ่านได้

ที่มา:

ต.ย. โปรแกรมด้วย VB.NET2008 เร็วๆ นี้

ลองเขียนโปรแกรมด้วย VB.NET2008
1. ออกแบบหน้าจอดังรูป

กำหนดคุณสอบัติของออบเจ็กต์ต่างๆ ดังนี้

ลำดับ
ชื่อวัตถุ
กำหนดคุณสมบัติ
1 Label1

Name : Label1
Text : การเข้ารหัสและถอดรหัส Caesar Substitution Ciphers

2 Label2 Name : Label2
Text : ป้อนข้อความ
3 Button1 Name : BtnClear
Text : ล้าง
4 ฺButton2 Name : BtnEncrypt
Text : เข้ารหัส
5 Button3 Name : BtnDecrypt
Text :: ถอดรหัส
6 TextBox1

Name :: TxtText
Text ::

7 TextBox2 Name :: TxtEncrypt
Text ::
8 TextBox3 Name :: TxtDecrypt
Text ::

เขียนโปรแกรม

Public Class Form1

'-- สร้างฟังก์ชันเข้ารหัส

Function CaeSarEncrypt(ByVal s As String)
Dim c As String
Dim b As String
Dim a As String
Dim x As String

For i = 1 To s.Length
b = Mid(s, i, 1)
If Asc(b) >= 97 And Asc(b) <= 222 Then
Select Case True
Case b = "x"
a = "a"
Case b = "y"
a = "b"
Case b = "z"
a = "c"
Case Else
a = Chr(Asc(b) + 3)
End Select
Else
Select Case True
Case b = "X"
a = "A"
Case b = "Y"
a = "B"
Case b = "Z"
a = "C"
Case Else
a = Chr(Asc(b) + 3)
End Select
End If

c &= a
Next i

Return c

End Function

 

'-- สร้างฟังก์ชันถอดรหัส

Function CaeSarDecrypt(ByVal s As String)

Dim c As String
Dim b As String
Dim a As String
Dim x As String

For i = 1 To s.Length
b = Mid(s, i, 1)
If Asc(b) >= 97 And Asc(b) <= 222 Then
Select Case True
Case b = "a"
a = "x"
Case b = "b"
a = "y"
Case b = "c"
a = "z"
Case Else
a = Chr(Asc(b) - 3)
End Select
Else
Select Case True
Case b = "A"
a = "X"
Case b = "B"
a = "Y"
Case b = "C"
a = "Z"
Case Else
a = Chr(Asc(b) - 3)
End Select
End If

c &= a
Next i

Return c

End Function

'-- โค้ดสำหรับปุ่มเข้ารหัส

Private Sub BtnEncrypt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEncrypt.Click
TxtEncrypt.Text = CaeSarEncrypt(TxtText.Text)
End Sub

'-- โค้ดสำหรับปุ่มถอดรหัส

Private Sub BtnDecrypt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDecrypt.Click
TxtDecrypt.Text = CaeSarDecrypt(TxtEncrypt.Text)
End Sub

 

'-- โค้ดสำหรับปุ่มเครียร์

Private Sub BtnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnClear.Click
TxtText.Clear()
TxtDecrypt.Clear()
TxtEncrypt.Clear()

 

End Sub
End Class

รันดูผลลัพธ์

 

 

        
 

| กลับหน้าหลัก | VB.NET อ่านเนื้อหาทั้งหมด | อ่านบทความถัดไป |

 

 

 

www.PhuetBulletin.co.th - ภูเก็ต ท่องเที่ยว หางาน อาหารภูเก็ต แฟชั่น Workflow Management
THE-THAN.COM สินค้าดีๆ มีให้เข้ามาดู
เว็บเพื่อนบ้าน ทั้งหมด

 

 
 

 

 

Site Meter

     คุณสามารถติชม เว็บได้ที่เว็บบอร์ด นะครับ

      สวัสดีครับทุกท่าน ผมพัฒนาเว็บนี้ขึ้นมาโดยมีวัตถุประสงค์ ที่จะเห็นโปรแกรมเมอร์ของไทย ได้มีการคิดค้นและพัฒนาซอฟต์แวร์ ของคนไทย กันมากขึ้น เพื่อเป็นการช่วยชาติของเราให้เจริญยิ่งขึ้นไป (จะได้ไม่ต้องทะเลาะกันอย่างทุกวันนี้ 555 อย่าเครียดครับ ) เนื่องจากเว็บนี้ยังเพิ่งเริ่มต้นนะครับอาจมีเนื้อหาบางงส่วนที่ยังไม่สมบูรณ์จึงขออภัยมา ณ โอกาส นี้ด้วยครับ
      คุณสามารถแนะนำหรือติชมเกี่ยวกับเว็บนี้ได้นะครับ เพื่อทางเราจะได้นำไปปรับปรุงแก้ไขให้เว็บดียิ่งขึ้นนะครับ
home