ตัวถอดรหัส Base64

5 จาก 2 การให้คะแนน

ตัวถอดรหัส Base64 เป็นเครื่องมือฟรีที่ใช้กู้คืนข้อมูลต้นฉบับจากข้อมูลที่เข้ารหัสแบบ Base64

การเข้ารหัส Base64 คืออะไร และใช้ทำไม?

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

Base64 มาตรฐานใช้อักษรภาษาอังกฤษตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก ตัวเลข เครื่องหมายบวก และเครื่องหมายทับ ส่วนเครื่องหมายเท่ากับอาจปรากฏที่ท้ายข้อมูลเพื่อใช้เป็นแพดดิง การเข้ารหัสจะทำให้ข้อมูลมีขนาดใหญ่ขึ้น เพราะข้อมูลต้นฉบับทุก 3 ไบต์จะกลายเป็นอักขระ Base64 จำนวน 4 ตัว

Base64 เป็นการเข้ารหัสข้อมูล ไม่ใช่การเข้ารหัสลับ ผู้ที่มีค่าที่เข้ารหัสไว้สามารถถอดรหัสได้โดยไม่ต้องใช้รหัสผ่านหรือคีย์ลับ จึงไม่ได้ช่วยปกปิดข้อมูล อย่าถือว่าค่า Base64 เป็นที่เก็บรหัสผ่าน คีย์ API หรือข้อมูลส่วนบุคคลที่ปลอดภัย

ใช้ตัวถอดรหัส Base64 อย่างไร?

วางค่า Base64 ลงในเครื่องมือแล้วสั่งถอดรหัส จากนั้นดูผลลัพธ์ในช่อง Base64 ที่ถอดรหัสแล้ว เซิร์ฟเวอร์จะแปลงข้อมูลด้วยฟังก์ชัน base64_decode ของ PHP

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

Base64 รักษาไบต์ของข้อมูลไว้ ไม่ได้รักษาความหมาย ตัวเลข ช่องว่าง และเครื่องหมายวรรคตอนเป็นเพียงส่วนหนึ่งของลำดับไบต์ต้นฉบับ อักษรที่มีเครื่องหมายกำกับและอักษรที่ไม่ใช่ละตินก็เข้ารหัสได้เช่นกัน แต่ต้องตีความไบต์ที่ถอดรหัสแล้วด้วยการเข้ารหัสอักขระที่ถูกต้อง ซึ่งโดยทั่วไปคือ UTF-8 สำหรับเนื้อหาเว็บสมัยใหม่

ตัวอย่างการใช้งานและการเลือกรูปแบบ

ตัวอย่างสั้น ๆ ของ Base64 มาตรฐานมีดังนี้:

อินพุต: SGVsbG8=

เอาต์พุต: Hello

เครื่องหมายเท่ากับตัวสุดท้ายคือแพดดิง ช่วยเติมบล็อก Base64 ให้ครบ 4 อักขระ และไม่ได้แทนอักขระเพิ่มเติมในผลลัพธ์ที่ถอดรหัสแล้ว

ชุดอักขระที่ใช้กันทั่วไปมี 2 รูปแบบ:

  • Base64 มาตรฐาน ใช้ + และ / พบได้ทั่วไปในอีเมล MIME, data URI และ API ที่ใช้ JSON หลายประเภท
  • Base64url ใช้ - และ _ แทน ออกแบบมาสำหรับ URL, พารามิเตอร์คำค้นหา และโทเค็น ซึ่งการใช้ + และ / อาจไม่สะดวก และมักละแพดดิงไว้

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

ปกติจะพบ Base64 ที่ไหนบ้าง?

มักพบ Base64 เมื่อต้องส่งข้อมูลไบนารีผ่านรูปแบบที่รองรับข้อความเป็นหลัก ค่านี้อาจปรากฏแยกเดี่ยว หรือเป็นส่วนหนึ่งของเอกสารขนาดใหญ่กว่า

  • Data URI ใช้ฝังรูปภาพขนาดเล็ก แบบอักษร หรือทรัพยากรอื่นลงใน HTML และ CSS โดยมักอยู่หลังคำนำหน้า เช่น data:image/png;base64,
  • เพย์โหลด JSON บางรายการส่งไฟล์ ใบรับรอง หรือข้อมูลสำหรับการเข้ารหัสลับเป็นข้อมูล Base64 เนื่องจาก JSON ไม่มีชนิดค่าข้อมูลไบนารีโดยตรง
  • อีเมล MIME ใช้ Base64 กับไฟล์แนบและส่วนของข้อความที่ไม่สามารถส่งเป็นข้อความธรรมดาได้อย่างปลอดภัย
  • สตริงคำค้นหาและโทเค็นบนเว็บอาจใช้ Base64url เพื่อหลีกเลี่ยงอักขระที่มีความหมายพิเศษใน URL
  • ไฟล์กำหนดค่าและตัวแปรสภาพแวดล้อมบางครั้งมีข้อมูล Base64 เนื่องจากระบบที่เกี่ยวข้องต้องการข้อความที่พิมพ์ได้

ชื่อโดเมนสากลที่ดูคล้ายข้อมูลเข้ารหัสต้องใช้ตัวถอดรหัสคนละประเภท ป้ายกำกับโดเมนที่ขึ้นต้นด้วย xn-- ใช้ Punycode ไม่ใช่ Base64 การส่งค่านี้ไปยังตัวถอดรหัส Base64 จะไม่กู้คืนชื่อโดเมน Unicode ที่ต้องการ

ทำไมถอดรหัส Base64 ไม่สำเร็จ หรือได้ข้อความอ่านไม่รู้เรื่อง?

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

  • ใช้ชุดอักขระผิด เกิดขึ้นเมื่อนำอินพุต Base64url ที่มี - หรือ _ ไปใช้เป็น Base64 มาตรฐาน หรือทำในทางกลับกัน
  • แพดดิงหายหรือเสียหาย อาจทำให้บล็อกสุดท้ายไม่สมบูรณ์ ตัวถอดรหัสบางตัวรองรับข้อมูลที่ไม่มีแพดดิง แต่ถ้าจำนวนอักขระหารด้วย 4 แล้วเหลือเศษ 1 ข้อมูลนั้นจะไม่สามารถเป็น Base64 ที่ถูกต้องได้
  • เข้ารหัสซ้ำ ทำให้ผลลัพธ์หลังถอดรหัสรอบแรกยังดูเหมือนข้อมูล Base64 หากต้นทางตั้งใจเข้ารหัสข้อมูลไว้ 2 รอบ อาจต้องถอดรหัสอีกครั้ง
  • ผลลัพธ์เป็นไบนารี ถือเป็นเรื่องปกติสำหรับรูปภาพ PDF ไฟล์บีบอัด และไบต์ที่ผ่านการเข้ารหัสลับ การเปิดไบต์เหล่านี้เป็นข้อความจะทำให้เห็นสัญลักษณ์หรืออักขระทดแทน
  • ใช้การเข้ารหัสอักขระผิด ทำให้ไบต์ที่ถอดรหัสอย่างถูกต้องแสดงผลผิดเพี้ยน ตัวอย่างเช่น หากตีความข้อมูล UTF-8 เป็น Windows-1252 อักษรที่มีเครื่องหมายกำกับอาจกลายเป็นข้อความเพี้ยน
  • มีเนื้อหาอื่นติดมาด้วย เช่น คำนำหน้า data URI เครื่องหมายอัญประกาศ อักขระหลีกใน JSON หรือการเข้ารหัสเปอร์เซ็นต์ของ URL ซึ่งควรนำออกก่อน

โหมดเริ่มต้นของ base64_decode ใน PHP ไม่ใช่โหมด strict และอาจละทิ้งอักขระที่อยู่นอกชุดอักขระมาตรฐาน วิธีนี้อาจช่วยให้รองรับการขึ้นบรรทัดใหม่จากอินพุตที่จัดรูปแบบแบบ MIME แต่ก็อาจซ่อนข้อผิดพลาดจากการคัดลอกแทนที่จะแจ้งให้ทราบอย่างชัดเจน หากผลลัพธ์ผิดคาด ให้เทียบกับรูปแบบต้นทางและตรวจสอบค่าต้นฉบับทีละอักขระ

คำถามที่พบบ่อย

Base64 แยกตัวพิมพ์ใหญ่กับตัวพิมพ์เล็กไหม?

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

ใช้ตัวถอดรหัส Base64 ถอดรหัส JWT ได้ไหม?

โดยทั่วไป JSON Web Token จะประกอบด้วยส่วนที่เข้ารหัสแบบ Base64url และคั่นด้วยจุด ต้องจัดการแต่ละส่วนแยกกัน และอาจต้องเติมแพดดิงที่ถูกละไว้กลับคืน การอ่านเพย์โหลดไม่ได้เป็นการตรวจสอบลายเซ็นของโทเค็น และไม่ได้พิสูจน์ว่าเนื้อหานั้นเป็นของแท้

ข้อมูล Base64 ที่ถอดรหัสแล้วอาจมีไวรัสหรือไฟล์อันตรายไหม?

เป็นไปได้ เพราะ Base64 สามารถแทนไบต์ใด ๆ ก็ได้ รวมถึงไฟล์ปฏิบัติการ สคริปต์ หรือเอกสารอันตราย การถอดรหัสเพียงอย่างเดียวไม่ได้เรียกใช้เนื้อหา แต่การบันทึกหรือเปิดผลลัพธ์ที่ไม่รู้จักอาจไม่ปลอดภัย ตรวจสอบประเภทไฟล์ที่ควรจะเป็นและแหล่งที่มาก่อนจัดการกับผลลัพธ์ไบนารี

ทำไมผลลัพธ์ที่ถอดรหัสแล้วถึงมีอักขระ null?

ไบต์ null อาจอยู่ในรูปแบบไบนารีและข้อความที่เข้ารหัสแบบ UTF-16 ซึ่งอักษรละตินจำนวนมากจะจับคู่กับไบต์ศูนย์ หากต้นทางระบุว่าเป็นข้อความ ให้ตรวจสอบการเข้ารหัสอักขระแทนการลบค่า null เพราะการลบอาจทำให้ข้อมูลเสียหาย

Base64 มีนามสกุลไฟล์ตายตัวไหม?

ไม่มี Base64 เป็นวิธีแทนข้อมูล ไม่ใช่รูปแบบไฟล์ จึงไม่มีนามสกุลที่กำหนดไว้ ไบต์ที่ถอดรหัสแล้วเป็นตัวบ่งชี้ว่าผลลัพธ์คือ PNG, PDF, ไฟล์ ZIP, ไฟล์ข้อความ หรือข้อมูลประเภทอื่น

ตรวจสอบอีกครั้งก่อนใช้งาน

ตรวจสอบว่าคุณคัดลอกมาเฉพาะค่าที่เข้ารหัสไว้ ระบุให้ได้ว่าเป็น Base64 มาตรฐานหรือ Base64url และรักษารูปแบบตัวพิมพ์เดิม หากผลลัพธ์อ่านไม่ได้ ให้ตรวจสอบว่าควรเปิดเป็นไฟล์แทนการแสดงเป็นข้อความหรือไม่ อย่าคิดว่าค่าที่ถอดรหัสสำเร็จแล้วจะน่าเชื่อถือหรือเป็นความลับ

เครื่องมือที่คล้ายกัน

ตัวเข้ารหัส Base64

เข้ารหัสอินพุตสตริงใดๆ เป็น Base64.

4,723
30

เครื่องมือยอดนิยม