CodeKitHub
Tiếng Việt
Công cụ Mã hóa

Mã Hóa / Giải Mã Base64 Trực Tuyến

Chuyển văn bản thành Base64 hoặc giải mã một chuỗi Base64 trở lại văn bản có thể đọc được. Công cụ này an toàn với UTF-8, nên xử lý đúng emoji, chữ Hán và các ký tự ngoài ASCII khác — những thứ thường làm hỏng các công cụ Base64 đơn giản. Mọi thứ chạy cục bộ trong trình duyệt của bạn.

Công Cụ Này Là Gì?

Base64 là một sơ đồ mã hóa chuyển dữ liệu nhị phân hoặc văn bản thành tập hợp 64 ký tự ASCII an toàn (A-Z, a-z, 0-9, + và /). Nó được dùng khắp nơi trong phần mềm: nhúng hình ảnh vào HTML/CSS, header xác thực HTTP Basic, tệp đính kèm email (MIME), JSON Web Token, và payload API cần truyền qua các kênh chỉ hiểu văn bản.

Lưu ý quan trọng: Base64 là mã hóa (encoding), không phải mã hóa bảo mật (encryption). Bất kỳ ai cũng có thể giải mã nó. Mục đích của nó là giúp dữ liệu truyền an toàn qua các hệ thống chỉ hiểu văn bản — không phải để giữ bí mật.

Tại Sao Nên Dùng?

  • Giải mã token API, các đoạn JWT và header xác thực để xem nội dung bên trong.
  • Mã hóa văn bản cho data URI, file cấu hình hoặc header HTTP.
  • An toàn UTF-8: emoji và ký tự ngoài bảng Latin được mã hóa và giải mã chính xác.
  • Riêng tư 100% — quá trình chuyển đổi diễn ra ngay trong trình duyệt của bạn, không có gì được tải lên.
  • Miễn phí, không cần đăng nhập, không giới hạn kích thước.

Cách Sử Dụng

  1. Gõ hoặc dán nội dung của bạn vào ô nhập liệu.
  2. Nhấn "Encode" để chuyển văn bản thành Base64, hoặc "Decode" để chuyển Base64 trở lại văn bản.
  3. Nếu giải mã thất bại, dữ liệu nhập vào không phải Base64 hợp lệ — kiểm tra ký tự bị thiếu hoặc khoảng trắng thừa.
  4. Nhấn "Copy" để sao chép kết quả.

Ví dụ

Đầu vào

Hello, CodeKitHub! 你好 👋

Đầu ra

SGVsbG8sIENvZGVLaXRIdWIhIOS9oOWlvSDwn5GL

Hãy để ý cách chữ Hán và emoji vẫn nguyên vẹn sau quá trình mã hóa rồi giải mã — đó chính là phần an toàn với UTF-8.

Mẹo thực tế

  • Token JWT gồm ba đoạn Base64 nối với nhau bằng dấu chấm — giải mã riêng hai đoạn đầu (header và payload) để đọc; đoạn thứ ba là chữ ký nhị phân và sẽ trông như dữ liệu ngẫu nhiên.
  • Nếu giải mã một đoạn JWT thất bại, đó là do mã hóa base64url: hãy thay - bằng + và _ bằng / trước (công cụ chuẩn mong đợi bảng ký tự +/).
  • Khoảng trắng và xuống dòng trong chuỗi Base64 thường là phần dư vô hại từ email hoặc log, nhưng thiếu dấu đệm = ở cuối thì thường không vô hại — hãy kiểm tra độ dài trước khi cho rằng dữ liệu bị hỏng.
  • Base64 làm dữ liệu phình to khoảng 33%. Không sao với payload nhỏ; với hình ảnh trên vài KB, dùng file thật gần như luôn tốt hơn data URI.

Các tình huống sử dụng thực tế

Ba trường hợp phổ biến nhất khiến người dùng tìm đến đây: đọc nội dung bên trong header Authorization hoặc JWT, giải mã một trường payload webhook/API đến dưới dạng bọc Base64 (thường là JSON — hãy định dạng lại sau khi giải mã), và tự tạo data URI hoặc chuỗi Basic-Auth thủ công khi debug.

Với dữ liệu nhị phân (hình ảnh, file), hãy nhớ rằng khi giải mã dưới dạng văn bản bạn sẽ nhận được ký tự lỗi font — dữ liệu có thể hoàn toàn hợp lệ, chỉ là nó không phải văn bản. Việc mã hóa/giải mã dữ liệu nhị phân nên thực hiện trong code; công cụ này được tối ưu cho các trường hợp văn bản.

Cách chẩn đoán lỗi giải mã

Lỗi giải mã Base64 hầu như luôn xuất phát từ một trong ba nguyên nhân, xếp theo tần suất: dữ liệu nhập vào thực ra là base64url (dùng - và _ thay vì + và / chuẩn, phổ biến trong JWT và các ngữ cảnh an toàn cho URL) và cần đổi lại các ký tự đó trước khi giải mã chuẩn chấp nhận được; chuỗi bị cắt xén ở đâu đó trên đường đi (sao chép-dán bị thiếu vài ký tự cuối, hoặc một dòng log bị cắt), có thể phát hiện vì độ dài của một chuỗi Base64 hợp lệ luôn là bội số của 4 sau khi tính cả phần đệm; hoặc các ký tự lạc (khoảng trắng thừa, một dòng mới đi lạc, một ký tự vô tình bị lặp) bị lẫn vào trong lúc sao chép — đó là lý do dán trực tiếp từ nguồn gốc luôn an toàn hơn là gõ lại.

Bộ Định Dạng JSON · Mã Hóa / Giải Mã URL · Bộ Giải Mã JWT

Câu Hỏi Thường Gặp

Base64 có phải là mã hóa bảo mật không?

Không. Base64 là một phép mã hóa có thể đảo ngược mà ai cũng giải mã được — nó không cung cấp bất kỳ mức độ bảo mật nào. Nếu bạn cần bảo vệ dữ liệu, hãy dùng mã hóa thực sự (như AES); Base64 chỉ dùng để giúp dữ liệu truyền an toàn dưới dạng văn bản.

Tại sao kết quả giải mã của tôi trông như dữ liệu rác?

Có thể do dữ liệu nhập vào thực ra không phải Base64, bị cắt xén, hoặc dữ liệu gốc là nhị phân (như hình ảnh) thay vì văn bản. Dữ liệu nhị phân sẽ không hiển thị thành các ký tự đọc được.

Các dấu = ở cuối có ý nghĩa gì?

Đó là phần đệm (padding). Base64 hoạt động theo khối 3 byte đầu vào → 4 ký tự đầu ra. Khi độ dài đầu vào không chia hết cho 3, một hoặc hai ký tự = sẽ được thêm vào để đệm khối cuối.

Công cụ này có hoạt động với emoji và chữ Hán không?

Có. Văn bản được mã hóa thành byte UTF-8 trước, đây là cách tiếp cận chuẩn. Các công cụ đơn giản dùng trực tiếp btoa() sẽ lỗi với bất kỳ ký tự nào ngoài Latin-1 — công cụ này thì không.

Dữ liệu của tôi có được tải lên đâu không?

Không. Việc mã hóa và giải mã chạy hoàn toàn trong trình duyệt của bạn bằng JavaScript. Dữ liệu của bạn không bao giờ rời khỏi thiết bị.

Công Cụ Liên Quan