Results 1 to 3 of 3

Thread: เข้าและถอดรหัส BASE64 แบบง่ายสุดๆๆ ด้วย VB 2008

  1. #1
    Junior Member
    Join Date
    Apr 2009
    Location
    432 Rajawithee 5 phyathai BKK
    Posts
    0


    Thumbs down

    รหัส Base64 เป็นรหัสที่ถือกำเนิดขึ้นมาด้วยจุดประสงค์ที่จะแก้ไขปัญหาในเรื่องของการส่งไฟล์ข้อมูลแบบไบนารี่ไปพร้อมกับอีเมล์ที่เก็บข้อมูลแบบตัวอักษรเท่านั้น ซึ่งด้วยโปรโตคอลแบบ SMTP ที่ใช้สำหรับการส่งอีเมล์นั้น สนับสนุนเฉพาะกับการส่งข้อมูลแบบอักขระแบบธรรมดาอย่างเช่น ตัวอักษร ABC เลข 123 หรือรหัสอักษรแบบยูนิโค้ดแบบภาษาไทย ก ข ค ง เท่านั้น

    แล้วจะทำยังไงให้ส่งไฟล์ข้อมูลแบบไบนารี่ไปกับอีเมล์ได้ล่ะ คำตอบก็คือการเข้ารหัสข้อมูลไฟล์ไบนารี่ด้วยรหัส Base64 ซึ่งรหัสดังกล่าวจะใช้อัลกอริทึมที่สามารถแปลงข้อมูลไบนารี่ที่มีความยาวข้อมูลขนาด 8 บิต ให้ลดลงเหลือแค่ 6 บิต แล้วเอาบิต 2 ตัวท้ายสุดที่ตัดออกไปต่อเป็นบิต 2 ตัวแรกของข้อมูลชุดถัดไป ทำแบบนี้เป็นกระบวนการต่อเรื่อยไป จนกระทั่งครบจำนวนข้อมูลทั้งหมด

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

    ดังนั้น ในบางครั้งเราจะสังเกตุได้ว่าเวลาที่เราแนบไฟล์ไปกับอีเมล์ทั้งๆ ทีไฟล์ก็อาจจะมีขนาดเพียงไม่กี่ MB แต่ก็ต้องใช้เวลานานในการแนบไฟล์และส่งเมล์ ก็ด้วยเหตุที่ระบบต้องทำการเข้ารหัสข้อมูลไฟล์เป็นรหัส BASE64 ก่อนนี่แหละครับ แถมด้วยขนาดของข้อมูลที่ใหญ่โตมากขึ้นกว่าเดิมก็ยิ่งทำให้เสียเวลาส่งมากขึ้นไปอีก

    555 เกริ่นนำกันเสียนาน มาเข้าเรื่องกันเลยดีกว่า ก่อนอื่นก็ต้องเตรียมเครื่องมือให้พร้อมครับ คือ โปรแกรม Visual Basic 2008 หรือ 2005 ก็ได้ จากนั้นก็เปิดโปรเจ็กใหม่ขึ้นมา เมื่อเจอหน้าฟอร์มว่างๆ ก็วาง Textbox ลงไปซักอันนึง ตามด้วยวาง Textbox อีกตัวแต่ตัวนี้เลือก Property ค่า Multiline ให้เป็น True เพื่อให้แสดงข้อความแบบหลายบรรทัดได้ แล้วจบท้ายด้วยวางปุ่มลงบไปหนึ่งปุ่มเอาไว้ออกคำสั่งให้เข้ารหัสข้อมูล

    ส่วนหลักการทำงานก็จะเริ่มจากการเปิดไฟล์ข้อมูลแบบไบนารี่ออกมา แล้วเอาไปเก็บเอาไว้ในตัวแปรแบบไบต์ จากนั้นก็นำค่าข้อมูลในตัวแปรไปเข้ารหัสด้วยฟังก์ขั่นที่มีคำสั่งเพียงบรรทัดเดียว แล้วเราก็จะได้รหัส BASE64 ของไฟล์ไบนารี่ออกมาแล้ว ง่ายสุดๆ ส่วนโค้ดก็ตามนี้เลยครับ


    Imports System.IO

    Public Class Form1
    Dim aDataBuffer As String


    Function EncodeBase64(ByVal aData() As Byte) As String
    If aData Is Nothing Then
    Throw New ArgumentNullException("Can not convert")
    End If
    Return Convert.ToBase64String(aData)
    End Function


    Private Sub CmdEncode_Click_1(ByVal sender As System.Object,_
    ByVal e As System.EventArgs) Handles CmdEncode.Click
    Dim aReadBuff As Byte()
    Dim aBase64 As String
    If TxOpen.Text <> "" Then
    aDataBuffer = ""
    TxBase64.Clear()
    aReadBuff = File.ReadAllBytes(TxOpen.Text)
    aBase64 = EncodeBase64(aReadBuff)
    TxBase64.Text = aBase64
    aDataBuffer = aBase64
    TxOpen.Clear()
    End If
    End Sub
    End Class

    โปรแกรมนี้เพียงเรากรอกชื่อไฟล์และพาร์ท เช่น C:\Test.mp3 เข้าไป แล้วกดที่ปุ่ม Encode รหัส BASE64 ของไฟล์ Test.mp3 ก็จะถูกแสงดออกมาทันทีที่ Textbox ตัวล่าง แล้วสำหรับใครที่อยากได้โค้ดของโปรแกรมก็ดาวน์โหลดไปได้เลยครับ ซึ่งแนบไปกับกระทู้นี้แล้ว เป็นโค้ดโปรแกรมภาษา VB 2008 ครับ (ปล. ถ้า VB 2008 ไม่มีฟังก์ชั่นสำหรับรหัส BASE64 เนี่ย ต้องเขียนฟังก์ชั่นอัลกอริทึมรหัส BASE64 กันสนุกสนานแน่นอนครับ)

    และบทความนี้ผมตัดออกมาบางส่วนจากบทความของผมเองในนิตยสาร Computer Today ซึ่งยังมีภาคต่อครับ สำหรับในส่วนของการถอดรหัส BASE64 กลับไปเป็นไฟล์ไบนารี่ ขอติดเอาไว้ต่อในตอนหน้าครับ
    Attached Files Attached Files
    223454K1agen3324442

  2. #2
    Junior Member
    Join Date
    Apr 2009
    Posts
    29


    ก็ดีสำหรับเครื่อข่ายที่ไม่ใช้เน็ตนะครับ เอาใว้ใช้ระหว่างการทำงานที่ไม่มีnet

  3. #3
    Junior Member
    Join Date
    Apr 2009
    Posts
    8


    ดีครับเพราะว่าจะได้ความรู้เกี่ยกวับการถอดรหัสbase64 เพราะว่าผมก็ใช้vb2008แต่อยากได้ความรู้เพิ่มเติม แต่ก็จะได้ความรู้เกี่ยวกับการถอดรหัสbase64ด้วยvb2008อีกด้วย

Similar Threads

  1. Replies: 4
    Last Post: 14-12-2009, 09:13 PM
  2. หลักการเข้ารหัสแบบ Base64
    By popvip in forum Computer Tip & Trick / Tutorial
    Replies: 5
    Last Post: 30-06-2009, 04:14 PM
  3. การเข้ารหัส Base64 ใน C#
    By minimum in forum แนะความรู้ด้าน Programming ต่างๆ
    Replies: 2
    Last Post: 30-06-2009, 04:03 PM
  4. ถอดรหัส Base64 decryption ด้วย PHP
    By asylu3 in forum Hacking, Exploit Articles/Tutorial/Techniques
    Replies: 2
    Last Post: 21-08-2007, 08:21 PM
  5. ถอดรหัส Base64 decryption ด้วย PHP
    By asylu3 in forum PHP,ASP,Javascript, Html
    Replies: 0
    Last Post: 01-01-1970, 07:00 AM

Members who have read this thread : 0

Actions : (View-Readers)

There are no names to display.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •