Bộ mã hóa tệp Base64

Tệp sang 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 biến mọi tệp nhị phân thành chuỗi ASCII in được, có thể đi qua các hệ thống chỉ được thiết kế cho văn bản: JSON, YAML, nội dung email, SMS, sao chép-dán vào chat. Bộ mã hóa này nhận một tệp bất kỳ, PDF, ảnh, ZIP, thậm chí tệp thực thi, rồi trả về biểu diễn Base64 sẵn để đặt vào URI data:, phần thân yêu cầu API hoặc tệp cấu hình.

Cách mã hóa một tệp

  1. 1

    Thả bất kỳ tệp nào vào bộ mã hóa

    Mọi định dạng nhị phân đều dùng được. Trình duyệt đọc byte thô.

  2. 2

    Các byte được mã hóa Base64

    Mỗi ba byte trở thành bốn ký tự ASCII từ bảng chữ cái `A-Z a-z 0-9 + /`.

  3. 3

    Chọn định dạng đầu ra

    Base64 thuần, URI `data:` với MIME type do trình duyệt báo cáo (hoặc giá trị dự phòng chung), hoặc phiên bản an toàn cho chuỗi JSON.

  4. 4

    Sao chép hoặc tải xuống dạng văn bản

    Với tệp lớn, tải xuống `.txt`; với tệp nhỏ, sao chép vào clipboard.

Chi phí tăng kích thước

Base64 làm mỗi ba byte phình thành bốn ký tự, tăng 33% chi phí lưu trữ và mạng. Padding bằng = thêm vài byte nữa. Ước lượng nhanh:

Kích thước tệp đầu vào Kích thước văn bản Base64
1 KB 1.33 KB
100 KB 133 KB
1 MB 1.33 MB
10 MB 13.3 MB

Nhúng tệp nhị phân lớn dưới dạng Base64 trong HTML hoặc JSON là cách rất nhanh để làm phình thời gian tải trang và bộ nhớ của trình phân tích cú pháp. Chỉ nhúng trực tiếp thứ gì lớn hơn khoảng 10 KB khi ràng buộc triển khai buộc phải làm vậy.

Trường hợp dùng phổ biến

  • URI dữ liệu, Ảnh nhỏ nhúng trực tiếp trong CSS hoặc HTML: url("data:image/png;base64,iVBORw0KGgo...").
  • Tệp đính kèm email, Nội dung MIME nhiều phần mã hóa tệp đính kèm bằng Base64 để vận chuyển an toàn qua SMTP.
  • Phần thân JSON, Nhúng PDF hoặc ZIP trong một trường JSON cho API chỉ gọi một lần.
  • Tệp YAML/cấu hình, Đưa khóa TLS hoặc khối nhị phân nhỏ vào tệp cấu hình.

Biến thể và padding

Bảng chữ cái Base64 chuẩn theo RFC 4648 có 64 ký hiệu: A-Z, a-z, 0-9, +/. Ký tự = là phần đệm, không thuộc bảng chữ cái. Với đầu ra URL-safe (thay + bằng -/ bằng _), hãy dùng nút riêng. Phần đệm được bật mặc định và có thể tắt.

Ghi chú quyền riêng tư

Tệp không bao giờ rời khỏi thiết bị của bạn. FileReader API đọc byte trong trình duyệt và JavaScript thực hiện mã hóa. Điều này quan trọng khi mã hóa PDF nhạy cảm, khóa riêng tư hoặc tài nguyên chưa phát hành.

Câu hỏi thường gặp

Bộ mã hóa nhận một tệp có dung lượng tối đa 50 MB. Kết quả Base64 lớn hơn tệp nguồn và được giữ trong bộ nhớ trình duyệt, vì vậy giới hạn cứng này giúp tránh dùng quá nhiều bộ nhớ.

Dùng khi cần bảng chữ cái phù hợp với URL hoặc tên tệp. Base64 URL-safe (RFC 4648 phần 5) thay + bằng -/ bằng _; tùy chọn padding riêng quyết định có giữ các ký tự = ở cuối hay không.

Chỉ với đầu ra URI data:. data:image/png;base64,... cho trình duyệt biết cách render byte đã giải mã. Với Base64 thuần hoặc nhúng JSON, MIME type không phải là một phần của dữ liệu đã mã hóa.

HTML có thể chứa URL data:application/pdf;base64,..., nhưng trình duyệt hiện đại thường chặn điều hướng cấp cao nhất đến URL data: và hành vi tải xuống không đáng tin cậy trên mọi trình duyệt. Giá trị lớn cũng có thể chạm giới hạn URL, bộ nhớ hoặc Content Security Policy. Để tải xuống ổn định, hãy tạo URL đối tượng Blob trong mã trình duyệt hoặc liên kết tới tệp được lưu trữ qua HTTPS.

Công cụ liên quan