Mã hóa

Base64

Mã hóa và giải mã Base64 — văn bản và tệp, ngay trong trình duyệt.

Base64 is a binary-to-text encoding that represents arbitrary bytes using 64 printable ASCII characters (A–Z, a–z, 0–9, plus + and /). It exists so binary data — images, archives, cryptographic keys — can pass unchanged through channels that were designed for text only.

This tool encodes and decodes both plain text and files. Everything runs client-side in your browser: the input never leaves your machine, which makes it safe for tokens, private keys, and other sensitive data.

How to use it

Common uses

Things to keep in mind

Base64 is not encryption — anyone can decode it. It only changes the representation of data, not its confidentiality.

Encoded output is about 33% larger than the input because every 3 bytes become 4 characters.

For URLs and file names use Base64URL, which swaps + and / for - and _ and often drops the = padding.

Bài viết về công cụ này: Base64: mã hóa để làm gì và hoạt động ra sao

Câu hỏi thường gặp

Base64 thực ra được dùng để làm gì?

Base64 chuyển dữ liệu nhị phân thành văn bản ASCII thuần để có thể truyền an toàn qua các hệ thống chỉ xử lý văn bản, như nội dung email, payload JSON, hoặc nhúng trực tiếp một ảnh nhỏ vào CSS/HTML.

Vì sao kết quả mã hóa lại lớn hơn đầu vào?

Base64 đóng gói mỗi 3 byte đầu vào thành 4 ký tự đầu ra, nên văn bản mã hóa lớn hơn khoảng 33% so với bản gốc. Đây là điều bình thường, không phải lỗi.

Tệp hoặc văn bản của tôi có được tải lên đâu không?

Không. Việc mã hóa và giải mã diễn ra hoàn toàn trong trình duyệt của bạn bằng JavaScript — không có gì được gửi tới máy chủ, nên vẫn hoạt động khi ngoại tuyến.

Base64 thông thường khác Base64URL ở điểm nào?

Trong Base64URL, các ký tự + và / được thay bằng - và _, để chuỗi có thể chèn an toàn vào URL hay tên tệp mà không cần percent-encoding thêm. JWT chính là dùng biến thể này.

Ký tự = ở cuối chuỗi có nghĩa là gì?

Đó là ký tự đệm (padding), cho biết có bao nhiêu byte còn thiếu trong khối 3 byte cuối cùng. Nó không phải lúc nào cũng bắt buộc — một số hệ thống cố tình bỏ nó đi.

Bài viết: Mã hóa

Base32: khác gì với Base64 và khi nào tiện hơn

Bảng chữ cái Base32 không phân biệt hoa thường và các trường hợp nó tiện hơn Base64.

URL Encode/Decode: percent-encoding trong liên kết

Các ký tự đặc biệt trong địa chỉ và tham số trở thành chuỗi %XX như thế nào.

HTML Entities: cách hiển thị ký tự đặc biệt an toàn

Vì sao các ký tự < > & cần được escape và điều đó giúp tránh hỏng mã HTML thế nào.

JWT: cấu trúc token và "giải mã" JWT nghĩa là gì

Header, payload và signature của JWT, và vì sao giải mã không giống với xác minh chữ ký.

Unicode Escape: chuỗi \uXXXX nghĩa là gì

Chuỗi kiểu \u0041 trong JSON và chuỗi JS đến từ đâu và chúng nghĩa là gì.

ROT13 và mật mã Caesar: thay thế ký tự đơn giản

Vì sao dịch 13 chữ cái khiến ROT13 tự nghịch đảo, và vì sao ngày nay người ta vẫn dùng nó.

Punycode: tên miền quốc tế hóa hoạt động thế nào trong DNS

Một tên miền chứa ký tự không phải Latinh trở thành dạng ASCII với tiền tố xn-- như thế nào.

Mã Morse: văn bản biến thành chấm và gạch ra sao

Nguyên lý mã hóa chữ cái thành chấm và gạch, và mã Morse còn được dùng ở đâu hiện nay.

Data URI: khi nào nên nhúng hình ảnh trực tiếp vào mã

Một Data URI nhúng nội dung tệp trực tiếp vào HTML hoặc CSS ra sao, và khi nào đáng làm vậy.

Gzip + Base64: nén dữ liệu để truyền dưới dạng văn bản

Vì sao dữ liệu nhị phân đã nén còn được mã hóa Base64 trước khi đưa vào trường văn bản.

XML Entities: escape ký tự trong tài liệu XML

Năm entity XML bắt buộc, thiếu chúng tài liệu sẽ hỏng khi phân tích cú pháp.