ตัวเข้ารหัสไฟล์ Base64

ไฟล์เป็น Base64

Base64 เปลี่ยนไฟล์ไบนารีใดก็ได้ให้เป็นสตริงของอักขระ ASCII ที่พิมพ์ได้ ซึ่งสามารถเดินทางผ่านระบบที่ออกแบบมาสำหรับข้อความเท่านั้น เช่น JSON, YAML, เนื้อหาอีเมล, SMS หรือการคัดลอกวางลงในแชต ตัวเข้ารหัสนี้รับไฟล์ใดก็ได้ ไม่ว่าจะเป็น PDF, รูปภาพ, ZIP หรือแม้แต่ไฟล์ปฏิบัติการ แล้วคืนค่าเป็น Base64 ที่พร้อมวางลงใน data: URI, เพย์โหลดของ API หรือไฟล์การตั้งค่า

วิธีเข้ารหัสไฟล์

  1. 1

    ลากไฟล์ใดก็ได้ลงในตัวเข้ารหัส

    ใช้ได้กับทุกรูปแบบไบนารี เบราว์เซอร์จะอ่านไบต์ดิบ

  2. 2

    ไบต์ถูกเข้ารหัสเป็น Base64

    ทุกสามไบต์จะกลายเป็นสี่อักขระ ASCII จากชุดอักขระ `A-Z a-z 0-9 + /`

  3. 3

    เลือกรูปแบบผลลัพธ์

    Base64 ธรรมดา, `data:` URI พร้อมชนิด MIME ที่เบราว์เซอร์รายงาน (หรือค่าเริ่มต้นทั่วไป) หรือรูปแบบที่ปลอดภัยสำหรับสตริง JSON

  4. 4

    คัดลอกหรือดาวน์โหลดเป็นข้อความ

    ไฟล์ขนาดใหญ่ให้ดาวน์โหลดเป็น `.txt`; ไฟล์ขนาดเล็กคัดลอกไปยังคลิปบอร์ดได้

ภาระด้านขนาด

Base64 ขยายทุกสามไบต์ให้เป็นสี่อักขระ ทำให้ค่าใช้จ่ายด้านพื้นที่จัดเก็บและเครือข่ายเพิ่มขึ้น 33% การเติม = เพิ่มอีกไม่กี่ไบต์ ประมาณคร่าว ๆ ได้ดังนี้:

ขนาดไฟล์ที่ป้อนเข้า ขนาดข้อความ Base64
1 KB 1.33 KB
100 KB 133 KB
1 MB 1.33 MB
10 MB 13.3 MB

การฝังไฟล์ไบนารีขนาดใหญ่เป็น Base64 ใน HTML หรือ JSON เป็นวิธีที่ทำให้เวลาโหลดหน้าและหน่วยความจำของตัวแยกวิเคราะห์พองตัวอย่างรวดเร็ว ควรฝังแบบอินไลน์สำหรับสิ่งที่ใหญ่เกินราว 10 KB เฉพาะเมื่อข้อจำกัดของการนำไปใช้งานบังคับให้ต้องทำเท่านั้น

กรณีใช้งานที่พบบ่อย

  • Data URI, รูปภาพอินไลน์ขนาดเล็กใน CSS หรือ HTML: url("data:image/png;base64,iVBORw0KGgo...")
  • ไฟล์แนบในอีเมล, เนื้อหาแบบ MIME multipart เข้ารหัสไฟล์แนบเป็น Base64 เพื่อส่งผ่าน SMTP ได้อย่างปลอดภัย
  • เพย์โหลด JSON, ฝัง PDF หรือ ZIP ไว้ในฟิลด์ JSON สำหรับ API ที่ส่งคำขอครั้งเดียว
  • ไฟล์ YAML/การตั้งค่า, ส่งคีย์ TLS หรือข้อมูลไบนารีขนาดเล็กไว้ในไฟล์การตั้งค่า

รูปแบบและการเติม

ชุดอักขระ Base64 มาตรฐานตาม RFC 4648 มี 64 สัญลักษณ์ ได้แก่ A-Z, a-z, 0-9, + และ / ส่วน = เป็นอักขระเติมท้าย ไม่ใช่ส่วนหนึ่งของชุดอักขระ สำหรับผลลัพธ์ที่ปลอดภัยกับ URL (แทน + ด้วย - และ / ด้วย _) ให้ใช้ปุ่มสลับเฉพาะ การเติมท้ายเปิดไว้โดยค่าเริ่มต้นและสามารถปิดได้

หมายเหตุด้านความเป็นส่วนตัว

ไฟล์ไม่ออกจากอุปกรณ์ของคุณ FileReader API อ่านไบต์ภายในเบราว์เซอร์ และ JavaScript ทำการเข้ารหัส เรื่องนี้สำคัญเมื่อเข้ารหัส PDF ที่มีข้อมูลละเอียดอ่อน คีย์ส่วนตัว หรือทรัพยากรที่ยังไม่เผยแพร่

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

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

ใช้เมื่อต้องการชุดอักขระที่เหมาะกับ URL หรือชื่อไฟล์ Base64 แบบ URL-safe (RFC 4648 ส่วนที่ 5) จะแทน + ด้วย - และ / ด้วย _ ส่วนตัวเลือกการเติมที่แยกต่างหากจะกำหนดว่าจะเก็บอักขระ = ท้ายข้อความไว้หรือไม่

สำคัญเฉพาะกับผลลัพธ์แบบ data: URI เท่านั้น data:image/png;base64,... บอกเบราว์เซอร์ว่าจะแสดงผลไบต์ที่ถอดรหัสแล้วอย่างไร สำหรับ Base64 ธรรมดาหรือการฝังใน JSON ชนิด MIME ไม่ได้เป็นส่วนหนึ่งของข้อมูลที่เข้ารหัส

HTML สามารถมี URL แบบ data:application/pdf;base64,... ได้ แต่เบราว์เซอร์สมัยใหม่มักบล็อกการนำทางระดับบนสุดไปยัง URL แบบ data: และการดาวน์โหลดทำงานไม่สม่ำเสมอในแต่ละเบราว์เซอร์ ค่าขนาดใหญ่อาจชนข้อจำกัดของ URL หน่วยความจำ หรือ Content Security Policy ด้วย หากต้องการให้ดาวน์โหลดได้อย่างน่าเชื่อถือ ให้สร้าง URL อ็อบเจ็กต์ Blob ในโค้ดเบราว์เซอร์ หรือลิงก์ไปยังไฟล์ที่โฮสต์ผ่าน HTTPS

เครื่องมือที่เกี่ยวข้อง

ตัวระบุการเข้ารหัส

วางไซเฟอร์เท็กซ์หรือแฮช แล้วตัวระบุจะแนะนำอัลกอริทึมหรือการเข้ารหัสที่น่าจะเป็น: MD5, SHA, bcrypt, AES, RSA, Base64 และอื่น ๆ

ตัวสร้าง HMAC

สร้างลายเซ็น HMAC (SHA-256, SHA-384, SHA-512, SHA-1 และ MD5) จากข้อความและกุญแจลับ เพื่อใช้ในการยืนยันตัวตนผ่าน API และ Webhook

เครื่องแปลง ETH เป็น USD

แปลงอีเธอเรียม (ETH) เป็นดอลลาร์สหรัฐด้วยอัตรา ETH/USD แบบเรียลไทม์หรืออัตราที่คุณกำหนดเอง ดูว่าจำนวน ETH เท่าใดก็ได้มีมูลค่าเป็น USD เท่าไร

เครื่องแปลง Gwei เป็น Ether

แปลงจำนวนในหน่วย Gwei เป็น Ether (ETH) ด้วยทศนิยมสูงสุด 18 ตำแหน่ง มีประโยชน์สำหรับการประมาณค่าธรรมเนียม Gas และการอ่านข้อมูลธุรกรรม

เครื่องคำนวณแฮชของไฟล์

คำนวณค่าแฮช MD5, SHA-1, SHA-256 และ SHA-512 ของข้อความหรือเนื้อหาไฟล์ที่คุณวาง เพื่อตรวจสอบไฟล์ที่ดาวน์โหลดและความสมบูรณ์ของไฟล์

ตัวสร้าง JWT

สร้าง JWT ที่มีการลงนาม โดยกำหนดหัวข้อ (header) แบบกำหนดเอง สิทธิ์ของพารามิเตอร์ในเนื้อหา (payload claims) การลงนามด้วย HMAC หรือ RSA รวมถึงกำหนดระยะเวลาหมดอายุและกลุ่มผู้ใช้งานที่อนุญาต เพื่อใช้ในการทดสอบ

เครื่องมือนี้มีให้บริการในภาษาอื่น