Cách mã hóa văn bản sang Base64
- Nhập hoặc dán văn bản vào ô Đầu vào, hoặc mở một file.
- Chọn bảng mã ký tự (UTF-8 hỗ trợ mọi ngôn ngữ và emoji), bật chế độ an toàn cho URL hoặc xuống dòng sau 76 ký tự nếu cần.
- Sao chép kết quả Base64 hoặc tải về dưới dạng file văn bản.
Cách hoạt động của mã hóa Base64
Bộ mã hóa xử lý văn bản của bạn dưới dạng byte, chia thành từng nhóm 3 byte (24 bit) và biến mỗi nhóm thành 4 ký tự trong bảng chữ cái gồm 64 ký tự. Nếu nhóm cuối cùng chưa đủ byte, các dấu = sẽ được thêm vào làm phần đệm. Đó là lý do kết quả Base64 lớn hơn dữ liệu gốc khoảng 33%: Man trở thành TWFu.
Mã hóa Base64 trong các ngôn ngữ lập trình phổ biến
- JavaScript:
btoa(String.fromCharCode(...new TextEncoder().encode(text))) - Python:
base64.b64encode(text.encode()).decode() - PHP:
base64_encode($text) - Java:
Base64.getEncoder().encodeToString(text.getBytes(UTF_8)) - Linux/macOS:
echo -n 'text' | base64
Câu hỏi thường gặp
Vì sao kết quả Base64 dài hơn văn bản gốc?
Base64 lưu 3 byte trong 4 ký tự, nên đầu ra dài khoảng 4/3 so với đầu vào, chưa kể phần đệm. Các ký tự ngoài bảng ASCII, như chữ tiếng Việt có dấu, chiếm 2–4 byte trong UTF-8 nên chuỗi Base64 của chúng còn dài hơn nữa.
Các dấu = ở cuối chuỗi có ý nghĩa gì?
Đó là phần đệm (padding). Một dấu = nghĩa là nhóm cuối có 2 byte, hai dấu == nghĩa là nhóm cuối chỉ có 1 byte. Base64 an toàn cho URL thường lược bỏ các dấu này.
Có mã hóa được emoji và tiếng Việt có dấu không?
Có. Chỉ cần giữ bảng mã ở UTF-8, mọi ngôn ngữ, ký hiệu hay emoji đều được mã hóa chính xác và có thể giải mã trên bất kỳ hệ thống nào.
Khi nào nên bật xuống dòng sau mỗi 76 ký tự?
Chỉ khi dùng cho email (MIME) và một số chứng chỉ PEM vốn yêu cầu ngắt dòng. Với API, JSON, URL và data URI, hãy tắt tùy chọn này.