Base64 เข้ารหัส / ถอดรหัส (UTF-8 และ
พิมพ์ข้อความใดก็ได้หรือวาง Base64 string เพื่อแปลงในทิศทางใดก็ได้ รองรับ UTF-8 (รวมอีโมจิและ CJK) และรองรับตัวแปร URL-safe ที่ใช้ใน JWT และ OAuth
วิธีการทำงาน
Base64 คืออะไรและไม่ใช่อะไร
Base64 เข้ารหัสไบต์ arbitrary โดยใช้ตัวอักษร 64 ตัว (A-Z, a-z, 0-9, +, / และ = สำหรับ padding) เป็นวิธีมาตรฐานในการฝังข้อมูลไบนารี เช่น ไบต์รูปภาพ encrypted blobs token ที่ลงนาม ลงในรูปแบบข้อความล้วน เช่น JSON, HTML หรือ email headers ผลลัพธ์ใหญ่กว่าอินพุตประมาณ 33%
Base64 คือการเข้ารหัส ไม่ใช่การเข้ารหัสลับ ทุกคนสามารถถอดรหัส Base64 string กลับเป็นไบต์เดิมได้ อย่าใช้เพื่อซ่อนความลับ ใช้อัลกอริทึมการเข้ารหัสจริงถ้าต้องการความลับ
URL-safe กับมาตรฐาน
Base64 มาตรฐานมี '+' และ '/' ซึ่งมีความหมายพิเศษใน URL และต้องเข้ารหัสแบบ percent-encoded URL-safe Base64 (RFC 4648 §5) แทนที่ '+' ด้วย '-', '/' ด้วย '_' และตัด '=' padding ออก JWT, OAuth token และ web API จำนวนมากใช้รูปแบบ URL-safe
ถ้าถอดรหัส JWT หรือ token ด้วยมือ ให้เปิด URL-safe ถ้าทำงานกับอีเมลคลาสสิกหรือข้อมูลที่ฝังใน PDF ให้ปิดไว้ decoder รับทั้งสองรูปแบบเมื่อเปิด URL-safe เนื่องจาก standard alphabet เป็น superset ลบคู่พิเศษออก
การจัดการ UTF-8
btoa() ของเบราว์เซอร์รุ่นเก่ารองรับเฉพาะ ASCII เครื่องมือนี้ใช้ TextEncoder เพื่อแปลงอินพุตเป็นไบต์ UTF-8 ก่อน จากนั้น Base64 เข้ารหัสไบต์เหล่านั้น ซึ่งหมายความว่าอีโมจิ อักขระ CJK ตัวอักษรละตินที่มีเครื่องหมายกำกับ และ Unicode อื่นๆ ทั้งหมดเข้ารหัสและ round-trip ได้อย่างถูกต้อง วิธีไบต์แล้ว Base64 เป็นวิธีเดียวกับที่ JWT library และ framework สมัยใหม่ส่วนใหญ่ใช้
คำถามที่พบบ่อย
›Base64 คือการเข้ารหัสลับหรือไม่?
ไม่ เป็นวิธีเข้ารหัสไบนารีเป็นข้อความ ASCII ทุกคนสามารถถอดรหัสได้ ใช้การเข้ารหัสจริง (AES, RSA ฯลฯ) สำหรับความลับ
›ทำไม URL-safe จึงต่างออกไป?
Base64 มาตรฐานใช้ '+' และ '/' ซึ่งมีความหมายพิเศษใน URL และต้องเข้ารหัสแบบ percent-encoded URL-safe Base64 แทนที่ด้วย '-' และ '_' เพื่อหลีกเลี่ยงปัญหา
›สามารถถอดรหัส JWT signature ได้หรือไม่?
การถอดรหัส signature ให้ไบต์ดิบของ signature แต่ไบต์เหล่านั้นมีไว้สำหรับการยืนยัน ไม่ใช่การอ่านของมนุษย์ ถอดรหัส JWT header และ payload (สองส่วนแรก) เพื่อดูข้อมูล
›ใช้สำหรับไฟล์ไบนารีได้หรือไม่?
ไม่ตรงๆ วางข้อความเท่านั้น สำหรับไฟล์ ให้ใช้เครื่องมือที่รองรับไบนารี (เบราว์เซอร์ส่วนใหญ่มีคู่ atob/btoa ในตัวที่ใช้ใน DevTools สำหรับไฟล์เล็กๆ ได้)
›ทำไมข้อความที่ถอดรหัสจึงดูไม่ออก?
อาจเป็นเพราะอินพุตไม่ใช่ Base64 ที่ถูกต้อง หรือมันเข้ารหัสไบต์ที่ไม่ใช่ UTF-8 (เช่น ไฟล์ Latin-1) ยืนยันการเข้ารหัสต้นฉบับ เครื่องมือที่ถอดรหัส 'เป็นข้อความ' สมมติว่าเป็น UTF-8
›ข้อมูลถูกส่งที่ไหนหรือไม่?
ไม่ การเข้ารหัสและถอดรหัสทำงานทั้งหมดในเบราว์เซอร์ของคุณ
›ค่าใช้จ่ายของขนาดคือเท่าไหร่?
ใหญ่กว่าไบต์ต้นฉบับประมาณ 33% (ทุก 3 ไบต์อินพุตกลายเป็น 4 ตัวอักษรผลลัพธ์) URL-safe โดยไม่มี padding มีค่าใช้จ่ายเดียวกัน
›ทำไม padding จึงสำคัญ?
Base64 มาตรฐาน padding ท้ายด้วย '=' เพื่อให้ความยาวเป็นผลคูณของ 4 เวอร์ชัน URL-safe มักข้ามเนื่องจากไม่จำเป็นสำหรับการถอดรหัส
เครื่องมือที่เกี่ยวข้อง
อัปเดตล่าสุด: