Base64 เป็นรูปภาพ

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

Base64 เป็นรูปภาพคือเครื่องมือฟรีสำหรับแปลงข้อมูลรูปภาพที่เข้ารหัสด้วย Base64 ให้กลับมาเป็นรูปภาพอีกครั้ง

Base64 ใช้แทนข้อมูลรูปภาพได้อย่างไร?

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

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

ตัวอย่างข้อความสั้น ๆ ช่วยให้เห็นกระบวนการนี้ได้ชัดเจน:

  • ไบต์ต้นฉบับเมื่อตีความเป็นข้อความ: Man
  • ผลลัพธ์ Base64: TWFu

รูปภาพใช้กระบวนการเดียวกัน แต่ไบต์ต้นฉบับจะเป็นข้อมูลที่อธิบายรูปภาพในรูปแบบ PNG, JPEG, GIF, WebP หรือรูปแบบอื่น ไม่ใช่ข้อความที่มนุษย์อ่านได้ ตัวข้อมูล Base64 ดิบไม่ได้ระบุประเภทของรูปภาพไว้โดยตรง ข้อมูลประเภทไฟล์อาจอยู่ใน data URL หรืออนุมานได้จากลายเซ็นไฟล์หลังถอดรหัส

จะแปลง Base64 กลับเป็นรูปภาพได้อย่างไร?

วางข้อมูลรูปภาพ Base64 ลงในเครื่องมือแล้วส่งเพื่อแปลง ผลลัพธ์ที่ได้จะเป็นรูปภาพ ก่อนเริ่ม ให้ตรวจสอบว่าค่าที่มีเป็น Base64 ดิบหรือ data URL แบบสมบูรณ์

  1. หาค่าที่เข้ารหัสไว้ แล้วคัดลอกโดยไม่รวมเครื่องหมายอัญประกาศที่ครอบค่าอยู่ใน JSON, CSS หรือซอร์สโค้ด
  2. ตรวจหาคำนำหน้า data URL เช่น data:image/png;base64, โดยเพย์โหลด Base64 จริงจะเริ่มหลังเครื่องหมายจุลภาค
  3. หากเครื่องมือไม่รับ data URL แบบสมบูรณ์ ให้ลบคำนำหน้าแล้วส่งเฉพาะเพย์โหลดที่เข้ารหัส เนื่องจากตัวถอดรหัสแต่ละตัวรองรับส่วนที่ครอบข้อมูลนี้ไม่เหมือนกัน
  4. ตรวจสอบว่ารูปภาพที่ได้มีเนื้อหา ขนาด และรูปแบบตรงตามที่คาดไว้ ก่อนนำไปใช้งานที่อื่น

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

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

ทำไมรูปภาพ Base64 ถึงถอดรหัสไม่ได้?

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

  • ข้อมูลถูกตัด. การคัดลอกจากบันทึกระบบ โปรแกรมดูฐานข้อมูล หรือระบบรับส่งข้อความอาจทำให้ส่วนท้ายของค่าที่ยาวหายไป อักขระที่ขาดมักทำให้ไบต์หลังถอดรหัสไม่ครบถ้วน
  • ใช้รูปแบบหรือชุดอักขระไม่ตรงกัน. Base64 มาตรฐานใช้ + และ / ขณะที่ Base64url มักใช้ - และ _ ตัวถอดรหัสที่รองรับอีกรูปแบบหนึ่งอาจปฏิเสธข้อมูลนี้
  • ไม่มีอักขระเติมเต็ม. ค่า Base64 อาจลงท้ายด้วยเครื่องหมายเท่ากับหนึ่งหรือสองตัว บางระบบตัดอักขระเติมเต็มนี้ออก และตัวถอดรหัสบางตัวสร้างกลับให้ได้ แต่ระบบที่ตรวจสอบอย่างเข้มงวดอาจกำหนดว่าต้องมี
  • ข้อมูลไบนารีไม่ใช่รูปภาพ. Base64 ใช้แทน PDF ไฟล์บีบอัด แบบอักษร หรือไบต์ชนิดอื่นได้ทั้งหมด ดังนั้น Base64 ที่มีรูปแบบถูกต้องจึงไม่ได้รับประกันว่าจะเป็นรูปภาพที่ถูกต้อง
  • สับสนเรื่องการเข้ารหัสข้อความ. ตัวอักษรที่มีเครื่องหมายกำกับ อีโมจิ และอักขระที่ไม่ใช่ละตินไม่ได้อยู่ในชุดอักขระ Base64 ต้องแปลงอักขระเหล่านี้เป็นไบต์ก่อน ซึ่งโดยทั่วไปใช้ UTF-8 แล้วจึงเข้ารหัสเป็น Base64
  • เข้ารหัสสองชั้น. หากถอดรหัสครั้งแรกแล้วได้ข้อมูลยาวอีกชุดหนึ่งซึ่งมีเฉพาะอักขระ Base64 ต้นทางอาจถูกเข้ารหัสไว้สองครั้ง ให้ถอดรหัสค่าระหว่างกลางอีกครั้งเฉพาะเมื่อยืนยันจากแหล่งที่มาได้ว่านี่คือผลลัพธ์ที่ควรเป็น

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

ข้อมูลรูปภาพ Base64 ใช้ที่ไหนบ้าง?

ข้อมูลรูปภาพ Base64 พบได้ในกรณีที่ต้องส่งไฟล์ไบนารีผ่านช่องข้อมูลหรือเอกสารที่รองรับข้อความเป็นหลัก ตัวอย่างที่พบบ่อย ได้แก่ รูปภาพที่ฝังใน data URL ของ HTML หรือ CSS, พร็อพเพอร์ตีรูปภาพในเพย์โหลด JSON API และส่วน MIME ของอีเมล

ข้อมูลนี้อาจปรากฏในสตริงคำค้นหาด้วย ซึ่งตัวแยกวิเคราะห์คำค้นหาของแอปพลิเคชันอาจจัดการอักขระ Base64 มาตรฐานผิดพลาด โดยเฉพาะตัวแยกวิเคราะห์แบบฟอร์มที่ตีความเครื่องหมายบวกเป็นช่องว่าง หรือใช้เครื่องหมายเท่ากับเป็นตัวแบ่ง Base64url จะแทนที่อักขระที่ก่อปัญหาเหล่านี้และมักละอักขระเติมเต็ม จึงเหมาะกับ URL และโทเค็นมากกว่า

ชื่อโดเมนสากลไม่ได้ใช้ Base64 ในระบบ IDNA ป้ายกำกับ ASCII จะไม่เปลี่ยนแปลง ส่วน U-label ที่มีอักขระนอก ASCII อาจแสดงเป็น A-label โดยใช้ Punycode อย่างไรก็ตาม ค่า Base64 อาจอยู่ในส่วนอื่นของ URL เช่น สตริงคำค้นหา ความแตกต่างนี้สำคัญเมื่อตรวจหาปัญหาของค่าที่คัดลอกจากแถบที่อยู่ในเบราว์เซอร์

JSON ไม่มีชนิดข้อมูลไบนารีโดยตรง API จึงอาจใส่เนื้อหารูปภาพ Base64 ไว้ในสตริงที่ครอบด้วยเครื่องหมายอัญประกาศ วิธีนี้สะดวกต่อการแลกเปลี่ยนข้อมูลแบบข้อความ แต่ทำให้เพย์โหลดมีขนาดใหญ่ขึ้น สำหรับการอัปโหลดไฟล์ขนาดใหญ่หรืออัปโหลดบ่อยครั้ง การอัปโหลดไฟล์ไบนารีตามปกติมักเหมาะสมกว่า

การเข้ารหัส Base64, การรักษาความลับ และการประมวลผลบนเซิร์ฟเวอร์

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

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

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

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

ดูรูปแบบไฟล์จาก Base64 ดิบได้ไหม?

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

ถอดรหัส Base64 แล้วคุณภาพรูปภาพลดลงไหม?

ไม่ลดลง การถอดรหัส Base64 อย่างถูกต้องจะคืนค่าไบต์ต้นฉบับและไม่บีบอัดรูปภาพซ้ำ คุณภาพของรูปภาพ ข้อมูลสี และข้อมูลเมตาที่ฝังไว้จะไม่เปลี่ยนแปลง เว้นแต่ภายหลังจะมีโปรแกรมอื่นแก้ไขหรือแปลงไฟล์ที่ถอดรหัสแล้ว

Base64 ใช้เก็บรูปภาพ SVG ได้ไหม?

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

ทำไมรูปภาพ Base64 ถึงใหญ่กว่าไฟล์ต้นฉบับ?

Base64 สร้างอักขระข้อความ 4 ตัวต่อข้อมูลต้นฉบับทุก 3 ไบต์ และข้อมูลชุดสุดท้ายอาจมีอักขระเติมเต็ม RFC 4648 กำหนดให้มีอักขระเติมเต็ม เว้นแต่ข้อกำหนดที่อ้างอิงจะอนุญาตให้ละได้อย่างชัดเจน ผลลัพธ์จึงมีขนาดใหญ่ขึ้นประมาณหนึ่งในสาม ก่อนรวมคำนำหน้า data URL, เครื่องหมายอัญประกาศของ JSON หรือข้อมูลส่วนเกินจากการรับส่ง หากระบบรองรับการอัปโหลดไฟล์ตามปกติ การส่งรูปภาพไบนารีต้นฉบับมักใช้ข้อมูลน้อยกว่า

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

รูปภาพเป็น Base64

แปลงรูปภาพของคุณเป็นข้อความ Base64 ด้วยเครื่องมือรูปภาพเป็น Base64 ของเรา เพื่อเข้ารหัสข้อมูลอย่างมีประสิทธิภาพ

4,484
9

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