QuickATools

Công cụ lập trình · Free browser tool

Mã hóa/Giải mã Base64

Mã hóa văn bản sang định dạng Base64 hoặc giải mã chuỗi Base64 về văn bản ngay lập tức với hỗ trợ UTF-8 đầy đủ và không rò dữ liệu.

Plain text

Any text, including emoji and non-Latin scripts.

0 chars0 bytes (UTF-8)

Base64 result

Your Base64 result will appear here.

0 chars0 bytes (UTF-8)

Frequently Asked Questions

Mã hóa Base64 thực sự dùng để làm gì?

Base64 chuyển dữ liệu nhị phân tùy ý (hoặc văn bản) thành chuỗi chỉ gồm chữ cái, số, +, / và = — ký tự an toàn để nhúng vào chỗ thiết kế cho văn bản thuần, như trường JSON, URL, tệp đính kèm email, header HTTP hoặc file cấu hình. Nó không phải mã hóa bảo mật hay nén; chỉ là định dạng vận chuyển an toàn, và ai cũng có thể giải mã về bản gốc ngay.

Vì sao mã hóa tiếng Việt hoặc emoji bằng btoa()/atob() thuần bị lỗi hoặc ném lỗi?

Hàm btoa() tích hợp của trình duyệt chỉ chấp nhận ký tự trong khoảng byte 0–255 (Latin-1). Ký tự tiếng Việt, emoji và hầu hết chữ không Latin dùng chuỗi UTF-8 nhiều byte ngoài khoảng đó, nên btoa() hoặc ném "InvalidCharacterError" hoặc làm hỏng văn bản im lặng. Công cụ tránh hoàn toàn bằng cách trước hết chuyển văn bản sang byte UTF-8 thô bằng TextEncoder, mã hóa các byte đó sang Base64, và đảo đúng các bước khi giải mã bằng TextDecoder — nên tiếng Việt, emoji và ký tự có dấu round-trip hoàn hảo.

Các ký tự đệm '=' ở cuối chuỗi Base64 nghĩa là gì?

Base64 mã hóa dữ liệu theo khối 3 byte thành 4 ký tự đầu ra. Khi dữ liệu gốc không phải bội số sạch của 3 byte, ký tự '=' được thêm ở cuối để đệm nhóm cuối đủ 4 ký tự — một '=' nếu còn 2 byte, hai '=' nếu còn 1 byte. Sự hiện diện (hoặc vắng) của chúng là phần bình thường, kỳ vọng của Base64 hợp lệ — không phải lỗi.

Có an toàn khi giải mã API key hoặc mật khẩu bằng công cụ Base64 online không?

Hoàn toàn phụ thuộc liệu công cụ có gửi đầu vào lên máy chủ hay không. Công cụ này không bao giờ làm vậy — mọi chuyển đổi chạy cục bộ trong trình duyệt bằng API JavaScript tích hợp (TextEncoder, TextDecoder, btoa, atob), không có request mạng. Điều đó khiến an toàn khi giải mã giá trị nhạy cảm như API key, đoạn JWT hoặc header Basic Auth, mà bạn không bao giờ nên dán vào công cụ proxy đầu vào qua backend bạn không kiểm soát.

Vì sao Base64 không phải mã hóa bảo mật — và vì sao điều đó quan trọng với bảo mật

Base64 là định dạng vận chuyển, không phải biện pháp bảo mật. Ai cũng có thể giải mã chuỗi Base64 về dạng gốc trong một cú nhấp — không có khóa bí mật. Nghĩa là câu hỏi bảo mật thật không phải "có được mã hóa không", mà "dữ liệu của tôi đi đâu khi tôi đang giải mã hoặc mã hóa?" Số lượng đáng ngạc nhiên các bộ chuyển đổi online lặng lẽ gửi những gì bạn dán lên máy chủ riêng để xử lý — vấn đề thật nếu bạn đang giải mã API key, payload JWT hoặc header Basic Auth lấy từ log production.

Công cụ này không bao giờ làm vậy. Mọi chuyển đổi — mã hóa hoặc giải mã — chạy qua TextEncoder, TextDecoder, btoa và atob của chính trình duyệt, không có request mạng ở bất kỳ điểm nào. Bạn có thể an toàn giải mã token trông đáng ngờ hoặc xác minh credential mà không bao giờ rời máy.

Xử lý UTF-8 quan trọng không kém câu chuyện quyền riêng tư. Lời gọi btoa() trần vỡ ngay khi văn bản chứa tiếng Việt, tiếng Nhật, emoji hoặc chữ Latin có dấu, vì nó chỉ hiểu khoảng byte Latin-1. Công cụ định tuyến mọi thứ qua mã hóa byte UTF-8 đúng trước, nên ký tự nhiều byte luôn round-trip đúng — mã hóa chuỗi có emoji, giải mã lại, và bạn nhận đúng cùng emoji, không phải ký tự thay thế rối.

Làm việc với dữ liệu có cấu trúc tiếp theo? Kết hợp với Định dạng & kiểm tra JSON để dọn phản hồi API sau khi giải mã. Thêm tiện ích developer — gồm trình tạo UUID — đang tới cho danh mục này.