Bộ mã hóa văn bản Base64

Bước 1 / 333%

Đầu vào

Base64 chuyển văn bản, kể cả ký tự ngoài ASCII, qua các hệ thống yêu cầu ASCII in được. Công cụ chỉ chạy trong trình duyệt này mã hóa văn bản UTF-8 thành Base64 hoặc giải mã Base64 thành văn bản UTF-8 hợp lệ theo RFC 4648, kèm bảng chữ cái an toàn cho URL và phần đệm tùy chọn. Với dữ liệu nhị phân, hãy dùng bộ giải mã tệp hoặc nhị phân.

Mã hóa văn bản Base64 hoạt động như thế nào

  1. 1

    Dán văn bản của bạn

    UTF-8 là cách diễn giải mặc định; mỗi ký tự trước tiên trở thành chuỗi byte UTF-8 của nó.

  2. 2

    Chọn chiều chuyển đổi

    Mã hóa văn bản sang Base64 hoặc giải mã Base64 về văn bản.

  3. 3

    Chọn biến thể

    Chuẩn (`A-Z a-z 0-9 + /`) hoặc an toàn cho URL (`+` và `/` được thay bằng `-` và `_`). Khi mã hóa, hãy bật hoặc tắt phần đệm (`=`).

  4. 4

    Sao chép kết quả

    Chỉ dùng kết quả khi định dạng đích yêu cầu Base64 hoặc Base64URL không có phần đệm. Chỉ mã hóa văn bản không tạo hay xác thực một JWT hoàn chỉnh hoặc tiêu đề xác thực.

Ví dụ từng bước

Mã hóa từ café:

  1. Mã hóa UTF-8: 63 61 66 C3 A9 (5 byte; é là hai byte trong UTF-8)
  2. Nhóm thành các khối 3-byte: 63 61 66 | C3 A9
  3. Mỗi 3 byte trở thành 4 ký tự Base64: Y 2 F m | w 6 k =
  4. Kết quả: Y2Fmw6k=

Base64 an toàn cho URL

Base64 chuẩn dùng +/, vốn có ý nghĩa dành riêng trong URL và tên tệp:

  • + có thể trở thành khoảng trắng khi giải mã dữ liệu truy vấn theo kiểu biểu mẫu
  • / phân tách các đoạn đường dẫn URL

Base64 an toàn cho URL (RFC 4648 mục 5) đổi chúng thành -_. Công cụ này giữ phần đệm = trừ khi bạn tắt riêng khi mã hóa. Biến thể này được dùng trong các phân đoạn JWT và ngữ cảnh cần an toàn cho tên tệp.

Phần đệm

Đầu ra Base64 được nhóm thành khối 4 ký tự. Nếu độ dài đầu vào không phải bội số của 3 byte, khối cuối được đệm bằng = để đủ 4 ký tự:

Byte đầu vào Đầu ra Phần đệm
1 4 ==
2 4 =
3 4 (không có)

Một số hệ thống (ví dụ các phân đoạn JWT) bỏ phần đệm. Công cụ này chấp nhận cả đầu vào có phần đệm đúng và đầu vào không đệm đúng; hệ thống nhận khác có thể yêu cầu phần đệm.

Lỗi thường gặp

  • Xem Base64 là mã hóa bảo mật. Không phải. Ai cũng có thể giải mã Base64; nó không che giấu gì.
  • Quên UTF-8. Mã hóa “café” theo Latin-1 cho byte khác với UTF-8. Trừ khi bạn biết bên nhận mong đợi gì, hãy giữ UTF-8.
  • Chấp nhận khoảng trắng khi chưa được cho phép. Theo mặc định, RFC 4648 yêu cầu từ chối ký tự ngoài bảng chữ cái. Chỉ bật tùy chọn chấp nhận dấu cách, tab, ngắt dòng và ngắt trang ASCII khi định dạng viện dẫn, chẳng hạn MIME, cho phép rõ ràng các ký tự đó.

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

Không. Nó là mã hóa (encoding), không phải mã hóa bảo mật (encryption). “aGVsbG8=” giải mã thành “hello” trong bất kỳ bộ giải mã Base64 nào. Nếu cần bí mật, hãy mã hóa bảo mật trước rồi đưa văn bản đã mã hóa qua Base64 để vận chuyển.

Base64 biểu diễn mỗi 3 byte đầu vào bằng 4 ký tự đầu ra, nên dạng đã mã hóa tăng khoảng 33%. Phần đệm có thể thêm tối đa hai ký tự.

Base64URL dùng -_ thay cho +/. Phần đệm là lựa chọn riêng; hãy tắt nếu định dạng đích yêu cầu giá trị không có phần đệm.

Base64 chuẩn cần được mã hóa phần trăm khi dùng làm giá trị truy vấn. Base64URL tránh +/; hãy tắt cả phần đệm nếu định dạng đích không chấp nhận =.

Công cụ liên quan