tigtools

Mã hóa / Giải mã Base64

Chuyển văn bản hoặc bất kỳ tệp nào sang Base64, hoặc giải mã Base64 thành văn bản có thể đọc được hay tệp gốc. Công cụ xử lý chính xác dấu, emoji và dữ liệu nhị phân.

Chạy ngay trên trình duyệt Không cần đăng ký

Loại đầu vào
Chiều chuyển đổi

Cách sử dụng

  1. Chọn Văn bản hoặc Tệp ở phía trên.
  2. Với văn bản, hãy chọn chiều chuyển đổi rồi nhập hoặc dán nội dung. Kết quả sẽ cập nhật khi bạn nhập.
  3. Để mã hóa tệp, hãy chọn hoặc thả tệp vào đây (tối đa 10 MB). Đánh dấu “Xuất dưới dạng data URL” nếu bạn muốn nhúng tệp vào HTML hoặc CSS.
  4. Để chuyển Base64 thành tệp, chọn Base64 → Văn bản, dán dữ liệu rồi nhấp “Tải xuống dưới dạng tệp”.

Cách hoạt động

Base64 biểu diễn dữ liệu nhị phân bằng 64 ký tự ASCII có thể in được: A–Z, a–z, 0–9, + và /. Cứ 3 byte được chuyển thành 4 ký tự, vì vậy dữ liệu sau khi mã hóa lớn hơn bản gốc khoảng 33%. Khi độ dài dữ liệu đầu vào không chia hết cho 3, đầu ra được thêm một hoặc hai dấu = để đệm.

Base64 là một phương thức mã hóa, không phải mã hóa bảo mật. Bất kỳ ai cũng có thể giải mã mà không cần khóa, vì vậy tuyệt đối không dùng Base64 để che giấu mật khẩu hoặc dữ liệu cá nhân. Base64 được dùng để truyền dữ liệu nhị phân qua các hệ thống vốn dành cho văn bản, chẳng hạn email (MIME), JSON, XML, HTTP header và data URL.

Văn bản trước tiên được chuyển thành byte UTF-8, nhờ đó các ký tự ngoài ASCII cũng được mã hóa chính xác. Điều này quan trọng vì hàm btoa tích hợp trong trình duyệt không xử lý được các ký tự như é hoặc emoji. Khi giải mã, công cụ kiểm tra xem kết quả có phải UTF-8 hợp lệ hay không; nếu không, dữ liệu là dạng nhị phân và sẽ được hiển thị ở dạng thập lục phân thay vì văn bản bị lỗi.

Biến thể an toàn cho URL (base64url, mục 5 của RFC 4648) thay + bằng - và / bằng _, đồng thời thường bỏ phần đệm = vì các ký tự này có ý nghĩa đặc biệt trong URL. Biến thể này được dùng trong JSON Web Tokens và nhiều API web. Cách ngắt dòng MIME (RFC 2045) chia đầu ra thành các dòng dài tối đa 76 ký tự, theo yêu cầu của một số hệ thống email và tệp chứng chỉ PEM.

Công cụ giải mã linh hoạt trong những trường hợp an toàn: bỏ qua khoảng trắng và ngắt dòng, tự thêm phần đệm còn thiếu, đồng thời chấp nhận cả hai bảng ký tự. Các trường hợp khác, chẳng hạn ký tự lạ hoặc dấu đệm nằm giữa chuỗi, sẽ được báo kèm vị trí thay vì âm thầm bỏ qua.

Ví dụ

Mã hóa văn bản có dấu và emoji

“Grüße 👋” được chuyển thành R3LDvMOfZSDwn5GL. Ký tự ü và ß mỗi ký tự chiếm 2 byte UTF-8, còn emoji chiếm 4 byte, nên 7 ký tự thành 12 byte và 16 ký tự Base64.

Tạo HTTP Basic Authorization header

Với tên người dùng “alice” và mật khẩu “s3cret”, hãy mã hóa alice:s3cret để được YWxpY2U6czNjcmV0, rồi gửi header Authorization: Basic YWxpY2U6czNjcmV0. Vì Base64 không phải mã hóa bảo mật, chỉ sử dụng xác thực Basic qua HTTPS.

Khôi phục tệp từ data URL

Dán một chuỗi như data:image/png;base64,iVBORw0KGgo… vào Base64 → Văn bản. Công cụ sẽ xóa tiền tố, nhận diện dữ liệu PNG, hiển thị ở dạng thập lục phân vì đây không phải văn bản, và nút “Tải xuống dưới dạng tệp” sẽ lưu thành decoded.png.

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

Base64 có phải là một dạng mã hóa không?

Không. Base64 là phương thức mã hóa có thể đảo ngược, không cần khóa hay bí mật. Bất kỳ ai nhìn thấy chuỗi Base64 đều có thể giải mã ngay, vì vậy tuyệt đối không dựa vào Base64 để bảo vệ mật khẩu, token hoặc thông tin cá nhân.

Tại sao văn bản sau khi giải mã lại có ký tự lạ trong các công cụ khác?

Thường là do văn bản được mã hóa bằng UTF-8 nhưng lại được giải mã bằng Latin-1 (hoặc ngược lại). Công cụ này luôn dùng UTF-8 và sẽ thông báo nếu các byte sau giải mã không phải là văn bản UTF-8 hợp lệ.

Base64 và base64url khác nhau thế nào?

Cả hai dùng cùng một phương pháp, nhưng base64url thay + bằng - và / bằng _, đồng thời thường bỏ phần đệm = để kết quả có thể dùng trong URL và tên tệp mà không cần mã hóa thêm. Công cụ này chấp nhận cả hai dạng.

Tại sao dữ liệu Base64 lại lớn hơn tệp gốc?

Base64 chuyển mỗi 3 byte thành 4 ký tự, làm kích thước tăng khoảng 33%. Việc xuống dòng làm tăng thêm 2 ký tự (CRLF) sau mỗi 76 ký tự. Với hình ảnh lớn, thường nên phân phối tệp riêng thay vì nhúng dưới dạng data URL.

Có giới hạn kích thước không?

Tệp có thể có kích thước tối đa 10 MB. Văn bản dán vào không có giới hạn cố định, nhưng dữ liệu đầu vào rất lớn (hàng chục megabyte) có thể khiến trang chạy chậm, đặc biệt trên điện thoại.

Quyền riêng tư

Quá trình mã hóa và giải mã diễn ra trong trình duyệt. Văn bản và tệp không bao giờ được tải lên hoặc lưu trữ, nội dung cũng không được đưa vào dữ liệu phân tích. Tệp tải xuống được tạo cục bộ trên thiết bị của bạn.