มีฟังก์ชันที่ทำหน้าที่ถอดรหัสหรือเข้ารหัสมากมายใน php เช่น utf8_decode() , ฟังก์ชั่น session_decode() ใช้ในการถอดรหัสข้อมูล ส่วนบทความนี้จะพูดถึง base64_decode() ซึ่งเป็นฟังก์ชันที่ช่วยถอดรหัสข้อมูลที่เข้ารหัสด้วย MIME BASE64
BASE64 (เบส 64) คือ วิธีการเข้ารหัสข้อมูลรูปแบบหนึ่ง ที่จะเปลี่ยนข้อความ หรือข้อมูลต้นฉบับไปเป็นข้อความ หรือข้อมูลชุดใหม่ ที่ไม่สามารถอ่าน หรือรู้ว่าข้อมูลชุดนี้คืออะไร ซึ่งการเข้ารหัสชนิดนี้จะแทนที่ข้อมูลด้วยตัวอักษร 64 ตัว นั่นคือที่มาของ BASE64 ซึ่่งวิธีการถอดรหัสด้วยตนเองนั้นค่อนข้างจะซับซ้อน คิอ จะทําย้อนกลับโดยให้นําข้อมูลมาแปลงเป็นฐานสอง 6 bit มาเรียงต่อกันก่อน แล้วนํามาจัดกลุ่ม กลุ่มละ 8 bit โดย bit สุดท้ายที่เหลือไม่ครบ 8 bit ให้ตัดทิ้ง หลังจากนั้นก็แปลงเลขฐานสอง 8 bit แต่ละชุดเป็นข้อมูล ASCII เท่านี้ก็จะได้ข้อมูลต้นฉบับแล้ว แต่ความซับซ้อนนั้นจะหายไปถ้าหาเราใช้ฟังก์ชันนี้
รูปแบบ Syntax
base64_decode ( string $data [, bool $strict = FALSE ] ) : string
ตัวอย่างการถอดรหัสโดยใช้ฟังก์ชันนี้
<?php
$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==';
echo base64_decode($str);
?>
มีผลลัพธ์ดังนี้
This is an encoded string
ตัวแปร $str ซึ่งถูกเข้ารหัสไว้แล้ว เราไม่สามารถอ่านออกหรือไม่เข้าใจว่ามันสื่อถึงอะไร เมื่อเราเอาไปเข้าฟังก์ชัน base64_decode() ก็สามารถแสดงค่าที่ถูกเข้าได้อย่างง่ายได้ ถ้าเทียบกับเอาไปถอดด้วยตนเอง อาจจะใช้เวลาที่ค่อนข้างนาน แต่ฟังก์ชันนี้จะคืนค่า false กรณีพบว่า การถอดรหัสนั้นเกิดความล้มเหลวครับ และยังมีวิธีการเข้าด้วยน่ะครับ คือใช้ฟังก์ชัน base64_encode() น่ะครับ