ตัวเข้ารหัสไฟล์ Base64
Funnel mode keeps the selected file in this browser for up to two hours so it can move between steps. It is not uploaded.
Base64 เปลี่ยนไฟล์ไบนารีใดก็ได้ให้เป็นสตริงของอักขระ ASCII ที่พิมพ์ได้ ซึ่งสามารถเดินทางผ่านระบบที่ออกแบบมาสำหรับข้อความเท่านั้น เช่น JSON, YAML, เนื้อหาอีเมล, SMS หรือการคัดลอกวางลงในแชต ตัวเข้ารหัสนี้รับไฟล์ใดก็ได้ ไม่ว่าจะเป็น PDF, รูปภาพ, ZIP หรือแม้แต่ไฟล์ปฏิบัติการ แล้วคืนค่าเป็น Base64 ที่พร้อมวางลงใน data: URI, เพย์โหลดของ API หรือไฟล์การตั้งค่า
วิธีเข้ารหัสไฟล์
-
1
ลากไฟล์ใดก็ได้ลงในตัวเข้ารหัส
ใช้ได้กับทุกรูปแบบไบนารี เบราว์เซอร์จะอ่านไบต์ดิบ
-
2
ไบต์ถูกเข้ารหัสเป็น Base64
ทุกสามไบต์จะกลายเป็นสี่อักขระ ASCII จากชุดอักขระ `A-Z a-z 0-9 + /`
-
3
เลือกรูปแบบผลลัพธ์
Base64 ธรรมดา, `data:` URI พร้อมชนิด MIME ที่เบราว์เซอร์รายงาน (หรือค่าเริ่มต้นทั่วไป) หรือรูปแบบที่ปลอดภัยสำหรับสตริง JSON
-
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
เครื่องมือที่เกี่ยวข้อง
ตัวเข้ารหัสและถอดรหัส Base85
เข้ารหัสและถอดรหัส Base85 ในรูปแบบ Adobe Ascii85 (PostScript/PDF) หรือ Z85 (ZeroMQ) กะทัดรัดกว่า Base64 สำหรับข้อมูลไบนารี
ตัวเข้ารหัสและถอดรหัส Base32
เข้ารหัสและถอดรหัสสตริง Base32 ด้วยตารางอักขระ RFC 4648 เหมาะสำหรับซีเคร็ต TOTP, โทเค็นที่ไม่แยกตัวพิมพ์ใหญ่เล็ก และตัวระบุที่มนุษย์ต้องพิมพ์
เครื่องมือเข้ารหัสซีซาร์
เข้ารหัสและถอดรหัสข้อความด้วยรหัสซีซาร์ เลื่อนได้ตั้งแต่ 1-25 รองรับ ROT13 เป็นกรณีพิเศษ และคงเครื่องหมายวรรคตอนกับตัวพิมพ์ใหญ่-เล็กไว้เหมือนเดิม
ตัวเข้ารหัส Atbash Cipher
เข้ารหัสหรือถอดรหัสข้อความด้วยรหัส Atbash ซึ่งเป็นการแทนที่แบบฮีบรูที่จับคู่ A-Z เป็น Z-A การทำงานเดียวกันใช้ได้ทั้งเข้ารหัสและถอดรหัส
เข้ารหัส / ถอดรหัส AES
เข้ารหัสและถอดรหัสข้อความความเสี่ยงต่ำด้วย AES cipher ของ OpenSSL passphrase จะถูก hash ด้วย SHA-256 และผลลัพธ์ Base64 มี IV รวมกับข้อความเข้ารหัส
ตัวสร้าง bcrypt
สร้าง bcrypt hash จากรหัสผ่าน plaintext ปรับ cost factor ได้ตั้งแต่ 4 ถึง 14 ใช้ร่วมกับ Laravel, Django, Node และ PHP ได้