
Cách sử dụng
- Dán văn bản thường cần mã hóa, hoặc chuỗi Base64 cần giải mã, vào ô Văn bản đầu vào.
- Bấm Mã hóa để đổi văn bản sang Base64, hoặc Giải mã để đổi Base64 trở lại văn bản đọc được.
- Tiếng Việt có dấu, emoji và các ngôn ngữ khác đều dùng được: văn bản được mã hóa sang UTF-8 trước, giống cách các website và API làm.
- Bấm Sao chép kết quả để sao chép. Nếu chuỗi đầu vào không phải Base64 hợp lệ, công cụ báo lỗi thay vì trả về chữ lộn xộn.
Base64 là gì
Base64 biến mọi loại dữ liệu thành một chuỗi chỉ gồm 64 ký tự an toàn: A–Z, a–z, 0–9, + và /, kèm dấu = ở cuối để đệm. Nhờ vậy dữ liệu nhị phân hay ký tự đặc biệt đi qua được những hệ thống chỉ xử lý văn bản thuần, như email, JSON, HTML và đôi khi cả URL.
Cách làm là lấy từng nhóm 3 byte (24 bit) rồi viết thành 4 ký tự, mỗi ký tự 6 bit. Vì thế chuỗi Base64 luôn dài hơn dữ liệu gốc khoảng một phần ba: vào 3 byte, ra 4 ký tự.
Ví dụ Base64
Bạn có thể tự mã hóa các dòng dưới đây để thấy cùng kết quả. Chữ có dấu tiếng Việt chiếm 2 hoặc 3 byte trong UTF-8, nên chuỗi Base64 của nó dài hơn chữ không dấu.
| Văn bản | Base64 |
|---|---|
| Hi | SGk= |
| hello | aGVsbG8= |
| Hello, World! | SGVsbG8sIFdvcmxkIQ== |
| café | Y2Fmw6k= |
| Việt Nam | Vmnhu4d0IE5hbQ== |
Gặp Base64 ở đâu
File đính kèm email được gửi dưới dạng Base64 bên trong thư. Ảnh nhỏ thường được nhúng thẳng vào trang web và CSS dưới dạng data URL bắt đầu bằng data:image/png;base64,. Header xác thực Basic, JSON Web Token và nhiều dữ liệu API cũng dùng Base64, tương tự khóa và chứng chỉ trong file PEM nằm giữa hai dòng BEGIN và END.
Câu hỏi thường gặp
Base64 có phải là mã hóa bảo mật không?
Không. Base64 chỉ là cách mã hóa dữ liệu (encoding), không phải mã hóa bảo mật (encryption): ai cũng giải mã được mà không cần khóa hay mật khẩu. Đừng dùng nó để giấu mật khẩu hay thông tin bí mật; hãy dùng công cụ Mã hóa văn bản cho việc đó.
Dấu = ở cuối chuỗi nghĩa là gì?
Đó là ký tự đệm. Khi độ dài dữ liệu không chia hết cho 3 byte, một hoặc hai dấu = được thêm vào nhóm 4 ký tự cuối, nên "Hi" (2 byte) thành SGk= và "Hello, World!" (13 byte) kết thúc bằng ==.
Base64 an toàn cho URL là gì?
Là biến thể dùng - và _ thay cho + và / để kết quả nằm được trong URL hay tên file mà không cần mã hóa thêm, thường bỏ luôn dấu = ở cuối. JSON Web Token dùng kiểu này. Muốn giải mã ở đây, đổi - thành + và _ thành /, rồi thêm dấu = cho đến khi độ dài chia hết cho 4.
Văn bản của tôi có bị tải lên không?
Không. Việc mã hóa và giải mã diễn ra trong trình duyệt, không có gì được gửi đi hay lưu lại.