Base64 คืออะไร

Base64 เป็นวิธีการแปลงข้อมูลไบนารีโดยพลการข้อมูลประกอบด้วยมากกว่าตัวอักษรข้อความธรรมดาเป็นข้อความธรรมดาที่สามารถถ่ายโอนผ่านเครือข่ายคอมพิวเตอร์ มันคือสิ่งที่เรียกว่าการเข้ารหัส ในขณะที่ผลลัพธ์ของข้อความที่เข้ารหัส base64 ไม่ใช่สิ่งที่มนุษย์สามารถเข้าใจได้อย่างง่ายดาย แต่ก็ยังประกอบด้วยอักขระภาษาอังกฤษทั่วไป 64 ตัวซึ่งเป็นที่มาของชื่อโดยมีอักขระ 65 ตัวเพิ่มเติมที่ใช้สำหรับวัตถุประสงค์พิเศษ

แนวคิดเบื้องหลัง base64 เกิดขึ้นเนื่องจากความต้องการที่เกิดขึ้นเพื่อให้ได้มากกว่าตัวอักษรข้อความธรรมดาผ่านการสื่อสารผ่านเครือข่ายเช่นอีเมล ข้อความอีเมลแรกเริ่มต้นเป็นอักขระที่เข้ารหัสในรหัสมาตรฐานอเมริกันสำหรับการแลกเปลี่ยนข้อมูล (ASCII) วิธีการเข้ารหัสที่ใช้ในคอมพิวเตอร์เพื่อแสดงอักขระภาษาอังกฤษเป็นข้อความบนหน้าจอหรือเครื่องพิมพ์ เนื่องจากข้อมูลไบนารีเพิ่มเติมที่จำเป็นต่อการผ่านจึงมีการพัฒนารูปแบบการเข้ารหัสใหม่

วิธีการเข้ารหัส base64 เป็นครั้งแรกที่อธิบายในสิ่งที่เรียกว่ามาตรฐานส่วนขยายอินเทอร์เน็ตจดหมายอเนกประสงค์ (MIME) วิธีการที่กำหนดมาตรฐาน MIME โดยที่อักขระอื่น ๆ ที่ไม่ได้เข้ารหัส ASCII เช่นตัวอักษรที่ใช้โดยที่ไม่ใช่ภาษาอังกฤษเช่นเดียวกับข้อมูลไบนารีโดยพลการอื่น ๆ สามารถเข้ารหัสในลำดับ ASCII และส่งผ่านข้อความอีเมล ในวิธีการหลักสองวิธีในการเข้ารหัสที่อธิบายโดยมาตรฐาน MIME นั้น base64 แบ่งปันบทบาทกับอีกคนหนึ่งที่รู้จักกันในชื่อ ในขณะที่วิธีการที่ยกมาได้นั้นสามารถขยาย ASCII ได้ค่อนข้างยาวเกิน 94 ตัวอักษรที่พิมพ์ได้ แต่ base64 สามารถใช้ลำดับไบต์ใดก็ได้และแปลงเป็น ASCII

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

เนื่องจาก base64 มีความสามารถในการเข้ารหัสข้อมูลไบนารีใด ๆ ลำดับของไบต์ใด ๆ จึงสามารถผ่านกระบวนการได้ มีการจับอย่างไรก็ตามในกรณีเหล่านั้นที่จำนวนไบต์สำหรับการเข้ารหัสไม่หารด้วยสามเพื่อให้บิตสามารถใส่ลงในบัฟเฟอร์ หากลำดับไบต์ประกอบด้วย, พูด, สี่หรือห้าไบต์, บางสิ่งบางอย่างยังจำเป็นต้องใช้เพื่อเติมบัฟเฟอร์และประกอบขึ้นเป็น 24 บิตเต็ม ในกรณีเหล่านี้แต่ละไบต์ที่หายไปจะถูกแสดงด้วยแปด 0s และต่อมาถูกแปลงเป็นอักขระตัวเต็มในการเข้ารหัสที่เสร็จสิ้นแล้ว นี่คือที่มาของอักขระที่ 65 ที่กล่าวถึงก่อนหน้านี้แสดงในข้อความที่เข้ารหัสด้วยเครื่องหมายเท่ากับ (=); มันจะปรากฏขึ้นที่ส่วนท้ายสุดของการเข้ารหัสเท่านั้นหากจำเป็นต้องใช้ฟิลเลอร์

ถึงแม้ว่า base64 จะถูกออกแบบมาเพื่อการส่งข้อมูลไบนารีผ่านทางข้อความอีเมล แต่การใช้งานนั้นได้ถูกนำมาใช้ในหลาย ๆ ด้านนอกเหนือจาก MIME สิ่งที่ใช้กันทั่วไปอย่างหนึ่งคือสำหรับฐานข้อมูลบนเว็บและแอปพลิเคชันเพื่อเข้ารหัสข้อมูลสำหรับการสร้าง resource locator (URL) ที่เหมือนกันบนเว็บฟอร์ม ภาษามาร์กอัปที่ขยายได้ (XML) ยังใช้ชุดตัวเลือกที่ช่วยให้ข้อมูลไบนารีเช่นรูปภาพขนาดเล็กที่จะรวมอยู่ในเอกสาร XML มีรูปแบบอื่น ๆ สำหรับวิธีการเข้ารหัสและเทคนิคที่เกี่ยวข้องกับความปลอดภัยอื่น ๆ เช่นการซ่อนรหัสผ่าน