Công cụ Mã hóa/Giải mã Base64
Bộ mã hóa/giải mã Base64 trực tuyến miễn phí, cho phép mã hóa và giải mã Base64 nhanh chóng, hỗ trợ xử lý an toàn UTF-8, chuyển đổi URL-safe, tự động bổ sung ký tự, thống kê thời gian thực, v.v. Cung cấp ví dụ mã đa ngôn ngữ, tạo Data URI, hướng dẫn sử dụng chi tiết và giải đáp các câu hỏi thường gặp. Giao diện thân thiện, thao tác đơn giản, không cần tải xuống hay cài đặt, mở ra là dùng được ngay.
Mã hóa (văn bản → Base64)
Giải mã (Base64 → văn bản)
Hướng dẫn sử dụng
Tính năng
- An toàn với UTF-8: Xử lý chính xác các ký tự không ASCII (sử dụng encodeURIComponent/unescape bao quanh).
- Hỗ trợ URL-safe: Chuyển đổi + / → - _ chỉ với một cú nhấp, tùy chọn loại bỏ dấu = đệm.
- Xử lý trước khi giải mã: Bỏ qua khoảng trắng, tự động phục hồi URL-safe và thêm = nếu thiếu.
- Tương tác thời gian thực: Nhập tự động xử lý, hiển thị độ dài và thống kê tỷ lệ tăng trưởng.
- Tính dễ dùng: Sao chép nhanh, điền kết quả lẫn nhau, hỗ trợ phím tắt và thân thiện với thiết bị di động.
- Giao diện đồng nhất: Không dùng lớp dark: của Tailwind, hoàn toàn dựa trên chủ đề DaisyUI.
Base64 là gì?
Base64 là một phương pháp mã hóa dữ liệu nhị phân thành văn bản ASCII, thường được sử dụng để truyền nội dung hình ảnh hoặc tệp trong các giao thức văn bản như JSON, XML, HTTP.
Nó ánh xạ mỗi 3 byte thành 4 ký tự có thể in, thường làm tăng kích thước khoảng 33%.
Base64 chuẩn sử dụng A–Z a–z 0–9 + / và ký tự đệm =; biến thể an toàn URL thay thế + / bằng - _, nhằm tránh vấn đề trốn thoát trong URL.
Ứng dụng phổ biến
- Nhúng hình ảnh hoặc tệp nhỏ dưới dạng Data URI.
- Truyền dữ liệu nhị phân giữa máy chủ và client (ví dụ: văn bản mã hóa, luồng nén).
- Chuyển đổi văn bản thành dạng có thể in, tránh các vấn đề về không nhất quán mã hóa hoặc ký tự không hiển thị.
Câu hỏi thường gặp & Lưu ý
- Bộ ký tự: Trong môi trường web, hãy xử lý văn bản trước ở định dạng UTF-8 (công cụ này đã tích hợp sẵn).
- An toàn URL: Đối với tham số hoặc đường dẫn URL, nên dùng biến thể an toàn URL và cân nhắc loại bỏ ký tự đệm.
- Ký tự đệm: Một số triển khai cho phép bỏ qua =, nhưng khi giải mã cần tự động bổ sung để đạt bội số của 4.
- Dòng mới: Base64 theo chuẩn MIME có thể chứa dòng mới; khi giải mã, hãy chọn “Bỏ qua ký tự trắng”.
Cách thực hiện mã hóa/giải mã Base64 bằng ngôn ngữ lập trình
const encoded = btoa(unescape(encodeURIComponent(text)));
// An toàn URL
const urlSafe = encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
// Tiền xử lý: Có thể thay thế -_ bằng +/
let b64 = input.replace(/-/g, '+').replace(/_/g, '/');
if (b64.length % 4 !== 0) b64 = b64.padEnd(b64.length + (4 - (b64.length % 4)), '=');
const text = decodeURIComponent(escape(atob(b64)));
$encoded = base64_encode($text);
// An toàn URL
$urlSafe = rtrim(strtr($encoded, '+/', '-_'), '=');
$b64 = strtr($input, '-_', '+/');
// Tự động bổ sung '='
if (strlen($b64) % 4 !== 0) $b64 .= str_repeat('=', 4 - (strlen($b64) % 4));
$text = base64_decode($b64);
import base64
encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')
# Mã hóa an toàn URL (loại bỏ ký tự đệm)
url_safe = encoded.replace('+','-').replace('/','_').rstrip('=')
import base64
def b64_decode(s: str) -> str:
s = s.replace('-','+').replace('_','/')
s += '=' * (-len(s) % 4) # Tự động bổ sung '='
return base64.b64decode(s).decode('utf-8')
import (
"encoding/base64"
)
enc := base64.StdEncoding.EncodeToString([]byte(text))
// Mã hóa an toàn URL (không có ký tự đệm)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
import (
"encoding/base64"
)
decBytes, err := base64.StdEncoding.DecodeString(enc)
// Giải mã an toàn URL (không có ký tự đệm)
decURL, err2 := base64.RawURLEncoding.DecodeString(urlEnc)
use base64::{engine::general_purpose, Engine as _};
let enc = general_purpose::STANDARD.encode(text.as_bytes());
// Mã hóa an toàn URL (không có ký tự đệm)
let url_enc = general_purpose::URL_SAFE_NO_PAD.encode(text.as_bytes());
use base64::{engine::general_purpose, Engine as _};
let dec_bytes = general_purpose::STANDARD.decode(&enc).unwrap();
let dec = String::from_utf8(dec_bytes).unwrap();
let url_dec = String::from_utf8(
general_purpose::URL_SAFE_NO_PAD.decode(&url_enc).unwrap()
).unwrap();
import java.nio.charset.StandardCharsets;
import java.util.Base64;
String enc = Base64.getEncoder().encodeToString(text.getBytes(StandardCharsets.UTF_8));
// Mã hóa an toàn URL (không có ký tự đệm)
String urlEnc = Base64.getUrlEncoder().withoutPadding().encodeToString(text.getBytes(StandardCharsets.UTF_8));
import java.nio.charset.StandardCharsets;
import java.util.Base64;
String dec = new String(Base64.getDecoder().decode(enc), StandardCharsets.UTF_8);
String urlDec = new String(Base64.getUrlDecoder().decode(urlEnc), StandardCharsets.UTF_8);