Dành cho lập trình viên
Mã hoá và giải mã Base64
Chuyển đổi hai chiều giữa văn bản và Base64, hỗ trợ đầy đủ tiếng Việt, tiếng Trung và biến thể URL-safe.
Mã hoá và giải mã Base64 là gì?
Base64 là cách biểu diễn dữ liệu nhị phân bằng 64 ký tự an toàn về văn bản. Nó ra đời để giải quyết một vấn đề cụ thể: nhiều giao thức cũ, đặc biệt là email, chỉ truyền được ký tự ASCII thông thường và sẽ làm hỏng dữ liệu nhị phân. Ngày nay bạn vẫn gặp Base64 ở khắp nơi — trong ảnh nhúng thẳng vào CSS, trong token xác thực, trong tệp cấu hình.
Điểm cần nhấn mạnh: Base64 không phải mã hoá bảo mật. Nó chỉ là cách biểu diễn khác của cùng dữ liệu, và bất kỳ ai cũng giải ngược được trong một giây. Đừng bao giờ dùng nó để giấu mật khẩu hay thông tin nhạy cảm.
Công cụ này xử lý đúng UTF-8, nên tiếng Việt có dấu và chữ Hán đều mã hoá rồi giải mã lại nguyên vẹn. Nhiều công cụ khác dùng hàm btoa trần và sẽ báo lỗi ngay khi gặp ký tự ngoài bảng Latin.
Cách sử dụng
- Chọn chiều Mã hoá hoặc Giải mã.
- Dán nội dung vào ô nhập. Kết quả hiện ra ngay khi bạn gõ.
- Bật URL-safe nếu chuỗi sẽ nằm trong địa chỉ web — nó thay dấu + và / bằng - và _, đồng thời bỏ dấu = ở cuối.
- Bấm Đảo chiều để lấy kết quả vừa có làm dữ liệu vào cho chiều ngược lại.
- Bấm Sao chép để lấy kết quả.
Câu hỏi thường gặp
Base64 có phải là mã hoá bảo mật không?
Không, hoàn toàn không. Base64 chỉ đổi cách biểu diễn dữ liệu, không có khoá và không có bí mật nào. Bất kỳ ai nhìn thấy chuỗi Base64 đều giải ngược được ngay. Nếu cần bảo vệ thật, bạn phải dùng mã hoá thực sự như AES.
Vì sao chuỗi Base64 luôn dài hơn bản gốc?
Vì mỗi 3 byte dữ liệu được biểu diễn bằng 4 ký tự, nên độ dài tăng khoảng 33%. Đó là cái giá phải trả để dữ liệu nhị phân đi qua được các kênh chỉ chấp nhận văn bản.
URL-safe khác gì bản thường?
Base64 chuẩn dùng ký tự + và / vốn có ý nghĩa riêng trong địa chỉ web và sẽ bị hiểu sai. Biến thể URL-safe thay chúng bằng - và _, đồng thời thường bỏ dấu = đệm ở cuối. Đây là dạng dùng trong token JWT.
Dấu = ở cuối chuỗi có ý nghĩa gì?
Đó là ký tự đệm, xuất hiện khi độ dài dữ liệu gốc không chia hết cho 3. Có thể có một hoặc hai dấu =. Công cụ này tự bù lại dấu đệm khi giải mã, nên bạn dán chuỗi thiếu = vẫn được.