วิธีการเข้ารหัส และถอดรหัส BASE64

 

BASE64 (เบส 64) คือ วิธีการเข้ารหัสข้อมูลรูปแบบหนึ่ง ที่จะเปลี่ยนข้อความ หรือข้อมูลต้นฉบับไปเป็นข้อความ หรือข้อมูลชุดใหม่ ที่ไม่สามารถอ่าน หรือรู้ว่าข้อมูลชุดนี้คืออะไร ซึ่งการเข้ารหัสชนิดนี้จะแทนที่ข้อมูลด้วยตัวอักษร 64 ตัว นั่นคือที่มาของ BASE64 ตามตัวอย่างต่อไปนี้

Table ASCII - Binary Character (เทเบิ้ล แอสกี้ ไบนารี่ ชาเรคเจอร์)

Table ASCII - Binary Character
Table ASCII - Binary Character

Table BASE64  (เทเบิ้ลเบส 64)

Table BASE64
Table BASE64

วิธีการเข้ารหัส BASE64

ยกตัวอย่าง
ต้องการเข้ารหัสข้อความนี้ "mind" จะมีขั้นตอนคือ

1. นําข้อมูลที่ต้องการเข้ารหัสมาแปลงเป็นเลขฐานสอง 8 bit ดูตามตาราง Table ASCII - Binary Character
m = 01101101
i = 01101001
m = 01101101
d = 01100100

01101101    01101001    01101101     01100100

2. จากนั้น เรียงบิตใหม่จากทางด้านซ้าย แบ่งเลขฐานสองออกเป็นชุด ชุดละ 6 bit กรณีที่ชุดสุดท้ายไม่ครบ ให้เติม 0 ไปจนครบ จะได้ดังนี้

011011  010110  100101  101101  011001  000000

** bit ที่ถูกเติมเข้าไปที่เป็น 00 แทนด้วย "="
กรณี bit สุดท้าย เป็น 000000 ก็จะได้ == สองตัวต่อ

3. แปลงเลขฐาน 2 แบบ 6 bit เป็นเลขฐาน 10
จำนวนบิต จะเริ่มจากขวาไปซ้าย สูตรการคำนวณบิต n^2

ผลการแปลง เป็น Base64
ผลการแปลง

 

เมื่อนำไปเปรียบเทียบกับตาราง Table BASE64 จะได้ดังนี้

bWltZA==

วิธีการถอดรหัส BASE64
     วิธีการถอดรหัส BASE64 ทําย้อนกลับครับให้นําข้อมูลมาแปลงเป็นฐานสอง 6 bit มาเรียงต่อกันก่อน แล้วนํามาจัดกลุ่ม กลุ่มละ 8 bit โดย bit สุดท้ายที่เหลือไม่ครบ 8 bit ให้ตัดทิ้ง หลังจากนั้นก็แปลงเลขฐานสอง 8 bit แต่ละชุดเป็นข้อมูล ASCII เท่านี้ก็จะได้ข้อมูลต้นฉบับแล้ว

 

สำหรับ Base64 ใน PHP เป็นวิธีเข้ารหัสข้อมูลบิตเป็นรูปแบบข้อความ ASCII ใช้ฟังก์ชัน base64_encode()
ในการเข้ารหัสข้อมูลบิตเป็นสตริงรูปแบบ base64 ข้อมูลที่เข้ารหัสนี้สามารถใช้ส่งข้อมูลบิตอย่างปลอดภัยผ่านเครือข่าย หรือในการจัดเก็บข้อมูลบิตในฐานข้อมูลหรือระบบไฟล์ที่เป็นข้อความ ใช้ฟังก์ชัน base64_decode() ในการถอดรหัสข้อมูลเป็นข้อมูลบิตเดิม หนึ่งในเหตุการณ์ที่นิยมใช้ base64 encoding ใน PHP คือในการเข้ารหัสรูปภาพที่ผู้ใช้อัปโหลดเข้าฐานข้อมูล.

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ช่วยทีครับ Joomla ผมเปิดใน IE เเล้วมีปัญหา
โดย nattloveaom พ 08 ธ.ค. 2010 3:05 pm บอร์ด สอบถามปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
8
1914
ส 11 ธ.ค. 2010 6:07 pm โดย mindphp View Topic ช่วยทีครับ Joomla ผมเปิดใน IE เเล้วมีปัญหา
ปัญหา XML Parsing Error at 26:16. Error 76: Mismatched tag ของ Joomla 1.5
โดย mindphp พ 08 ธ.ค. 2010 1:29 pm บอร์ด สอบถามปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
0
1021
พ 08 ธ.ค. 2010 1:29 pm โดย mindphp View Topic ปัญหา XML Parsing Error at 26:16. Error 76: Mismatched tag ของ Joomla 1.5
ตั้งค่า phpbb3 เรียงกระทู้ตามเวลาตั้งกระทู้ Sort by Topic time
โดย mindphp พ 08 ธ.ค. 2010 1:29 pm บอร์ด สอบถามปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
0
1287
พ 08 ธ.ค. 2010 1:29 pm โดย mindphp View Topic ตั้งค่า phpbb3 เรียงกระทู้ตามเวลาตั้งกระทู้ Sort by Topic time
ติดตั้ง com_rokbridge แล้ว Fatal error: Class 'JFile' not found
โดย ecitepage.com พ 08 ธ.ค. 2010 2:54 am บอร์ด สอบถามปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
1
1268
พ 08 ธ.ค. 2010 5:55 am โดย mindphp View Topic ติดตั้ง com_rokbridge แล้ว Fatal error: Class 'JFile' not found
หาฟรีเว็บบอร์ด php ที่ใช้งานกับ Oracle ได้ มีไหม
โดย ecitepage.com พ 08 ธ.ค. 2010 2:31 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
1728
พ 08 ธ.ค. 2010 5:57 am โดย mindphp View Topic หาฟรีเว็บบอร์ด php ที่ใช้งานกับ Oracle ได้ มีไหม
ต้องการเขียนเว็บบอร์ดด้วย php พึ่งเริ่มต้นจับ จะทำอย่างไรดีช่วยหน่อยค่ะ
โดย Anonymous อ 07 ธ.ค. 2010 5:02 pm บอร์ด Programming - PHP
2
2018
อ 15 มี.ค. 2011 9:48 pm โดย seoohyes View Topic ต้องการเขียนเว็บบอร์ดด้วย php พึ่งเริ่มต้นจับ จะทำอย่างไรดีช่วยหน่อยค่ะ
php ไม่ส่ง mail รบกวนด้วยครับ
โดย mr_narin อ 07 ธ.ค. 2010 4:32 pm บอร์ด Programming - PHP
2
1835
ส 11 ธ.ค. 2010 11:59 pm โดย HBme1551 View Topic php ไม่ส่ง mail รบกวนด้วยครับ
อินฟินิตี้ ขอถ้าให้คุณพิสูท II-Berry โฉมใหม่ ได้ใจกว่าเดิม
โดย pleple22 อ 07 ธ.ค. 2010 12:33 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
1472
อ 07 ธ.ค. 2010 12:33 pm โดย pleple22 View Topic อินฟินิตี้ ขอถ้าให้คุณพิสูท II-Berry โฉมใหม่ ได้ใจกว่าเดิม