Công cụ mã hóa Base64
Mã hóa văn bản hoặc byte hex sang Base64 ngay trong trình duyệt. Hỗ trợ đầy đủ UTF-8 (emoji, tiếng Việt có dấu), bảng chữ URL-safe, tùy chọn padding và ngắt dòng 76 ký tự.
24 ký tự · 28 byte (UTF-8)
0 ký tự · 0 byte (UTF-8)
Chạy hoàn toàn trong trình duyệt. Dữ liệu của bạn không bao giờ bị tải lên.
Mã hóa Base64 là gì?
Chuyển văn bản sang Base64 theo định nghĩa trong RFC 4648. Văn bản trước tiên được chuyển thành byte UTF-8, nên emoji, chữ Trung, Ả Rập hay tiếng Việt có dấu đều được mã hóa đúng, sau đó các byte được viết bằng bảng chữ Base64 gồm 64 ký tự. Bạn cũng có thể dán byte thô dạng hex thay cho văn bản.
Cách sử dụng Mã hóa Base64
- Gõ hoặc dán văn bản vào ô Đầu vào (hoặc đổi Định dạng đầu vào sang Byte dạng hex để mã hóa byte thô).
- Tùy chọn đánh dấu Bảng chữ an toàn cho URL (- và _), bỏ chọn Thêm phần đệm =, hoặc bật Xuống dòng sau mỗi 76 ký tự (MIME).
- Kết quả Base64 xuất hiện ngay trong ô Đầu ra.
- Bấm Sao chép, hoặc Dùng làm đầu vào để chuyển sang giải mã và kiểm tra lại kết quả.
Ví dụ
Hello, World! Xin chào 👋
SGVsbG8sIFdvcmxkISBYaW4gY2jDoG8g8J+Riw==
Tùy chọn mặc định: đầu vào UTF-8, bảng chữ chuẩn có padding.
Khi nào nên dùng Mã hóa Base64
Dùng Base64 khi dữ liệu nhị phân hoặc không phải ASCII phải đi qua kênh chỉ hỗ trợ văn bản: trường JSON, data URI, header HTTP Basic auth, email (MIME) hoặc file cấu hình. Không dùng nó để bảo vệ dữ liệu – Base64 chỉ là một cách mã hóa, ai cũng giải mã được – và tránh dùng cho file lớn khi kích thước tăng thêm 33% là đáng kể (với file, hãy dùng công cụ mã hóa file Base64).
Mã hóa Base64 hoạt động như thế nào
Đầu vào được chuyển thành byte (UTF-8 qua TextEncoder, hoặc phân tích từ hex). Mỗi 3 byte (24 bit) được chia thành bốn nhóm 6 bit, mỗi nhóm ứng với một ký tự trong A–Z a–z 0–9 + /. Nếu nhóm cuối có 1 hoặc 2 byte, kết quả được đệm bằng = cho đủ bội số của 4 ký tự. Biến thể an toàn cho URL (RFC 4648 §5, "base64url") thay + bằng - và / bằng _, thường dùng không có padding. Việc xuống dòng sau 76 ký tự theo quy tắc độ dài dòng của MIME.
Các Trường Hợp Sử Dụng Phổ Biến
- Tạo header HTTP
Authorization: Basictừuser:password - Nhúng một chuỗi ngắn hoặc token vào JSON hay YAML
- Tạo giá trị base64url cho header và payload của JWT
- Mã hóa văn bản không phải ASCII để đi qua các hệ thống cũ chỉ hỗ trợ ASCII
- Kiểm tra một chuỗi UTF-8 thực sự tạo ra những byte nào
Lưu Ý Bảo Mật
Việc mã hóa diễn ra cục bộ trong trình duyệt; không có gì được tải lên. Hãy nhớ rằng Base64 không đem lại tính bảo mật nào.
Câu Hỏi Thường Gặp
Vì sao Base64 của tôi khác với công cụ khác khi văn bản không phải tiếng Anh?
Một số công cụ mã hóa văn bản dạng Latin-1 hoặc UTF-16. Công cụ này luôn dùng UTF-8, đúng như trình duyệt, btoa(unescape(encodeURIComponent(s))), base64.b64encode(s.encode()) của Python và hầu hết API mong đợi.
Base64 và base64url khác nhau thế nào?
base64url dùng - và _ thay cho + và /, nên kết quả có thể đặt vào URL và tên file mà không cần percent-encoding. JWT dùng base64url không có padding =.
Base64 có phải là mã hóa bảo mật không?
Không. Nó chỉ thay đổi cách biểu diễn; ai cũng giải mã được. Hãy dùng mã hóa thật sự (ví dụ AES-GCM) nếu dữ liệu cần giữ bí mật.
Kết quả Base64 lớn hơn bao nhiêu?
Bốn ký tự đầu ra cho mỗi ba byte đầu vào, nên lớn hơn khoảng 33%, cộng thêm ký tự xuống dòng nếu bật ngắt dòng.