Mã hóa và giải mã Base64

Gõ vào bên nào thì bên kia tự cập nhật. Hỗ trợ Base64 (chuẩn và an toàn cho URL), nhị phân, hex, mã hóa URL và thực thể HTML, xử lý đúng cả emoji lẫn chữ có dấu.

Văn bản

Định dạng
Tải .txt

Cả hai ô đều sửa được. Dán chuỗi đã mã hóa vào bên phải để giải mã; định dạng được tự nhận khi bạn dán.

Base64

Hợp lệ
Tải .txt

Mọi thứ chạy trong trình duyệt. Không có gì bạn gõ hay thả vào bị tải lên.

File sang Base64

Xuất dạng
Tải .txt

Cách mã hóa và giải mã Base64

Công cụ mã hóa và giải mã Base64 này chạy hai chiều cùng lúc. Gõ văn bản thường ở bên trái và Base64 hiện ra bên phải; dán Base64 vào bên phải và văn bản đã giải mã hiện ở bên trái. Hello thành SGVsbG8=, và dán SGVsbG8= sẽ cho lại Hello.

Hai khung này cũng xử lý bốn định dạng khác: nhị phân, hex, mã hóa URL và thực thể HTML. Khi bạn dán gì đó vào bên phải, công cụ xem xét và tự chuyển sang định dạng phù hợp, nên một chuỗi toàn 0 và 1 được đọc là nhị phân mà bạn không phải chọn gì. Nếu bạn lỡ dán chuỗi đã mã hóa vào khung văn bản thường, công cụ sẽ gợi ý giải mã thay vào đó.

Base64 thực sự làm gì

Base64 biến bất kỳ chuỗi byte nào thành 64 ký tự an toàn (A–Z, a–z, 0–9, + và /), để dữ liệu nhị phân đi qua được các hệ thống làm cho văn bản: email, JSON, thuộc tính HTML, biến môi trường. Nó lấy 3 byte (24 bit), chia thành bốn phần 6 bit và viết một ký tự cho mỗi phần.

Man → 01001101 01100001 01101110 → 010011 010110 000101 101110 → TWFu

Khi dữ liệu không phải bội số của 3 byte, dấu = được thêm vào cuối: Ma là TWE= và M là TQ==. Base64 không phải mã hóa bảo mật. Ai cũng giải mã được trong một giây, nên đừng coi mật khẩu dạng Base64 là đã được giấu.

Chuẩn hay an toàn cho URL?

Ký tự + và / làm hỏng URL và tên file, nên biến thể an toàn cho URL dùng - và _ thay thế và thường bỏ phần đệm. Hai byte FB FF là +/8= trong Base64 chuẩn và -_8 ở dạng an toàn cho URL. Token JWT và nhiều khóa API dùng dạng an toàn cho URL. Khi giải mã bạn không cần chọn: cả hai bảng ký tự đều được chấp nhận, có hoặc không có đệm, còn dấu cách và xuống dòng sẽ bị bỏ qua.

Tick Ngắt dòng sau mỗi 76 ký tự khi cần kết quả kiểu MIME cho nội dung email hoặc chứng chỉ PEM.

Các ký tự thường gặp trong mọi định dạng

Mọi thứ ở đây được chuyển đổi qua UTF-8, bảng mã mà gần như mọi trang web và API đều dùng. Vì vậy é chiếm hai byte và một emoji chiếm bốn byte. Những công cụ bỏ qua bước này sẽ làm hỏng chữ có dấu, và đó là lời phàn nàn phổ biến nhất về các trang giải mã Base64 trực tuyến, nhất là với tiếng Việt.

Ký tựBase64Nhị phânHexURL
AQQ==0100000141A
aYQ==0110000161a
dấu cáchIA==0010000020%20
&Jg==0010011026%26
éw6k=11000011 10101001C3 A9%C3%A9
€4oKs11100010 10000010 10101100E2 82 AC%E2%82%AC

Chuyển văn bản sang nhị phân và ngược lại

Chọn Nhị phân và mỗi byte của văn bản được viết thành 8 bit. Hi thành 01001000 01101001. Tắt Cách giữa các byte để có một chuỗi liền mạch.

Để dịch nhị phân sang văn bản, dán các bit vào khung bên phải. Các nhóm 8 bit được đọc là byte. Một số trang in ASCII bằng 7 bit (1001000 1101001); miễn là các nhóm cách nhau bằng dấu cách, chúng được thêm một số 0 ở đầu và đọc đúng. Nếu không có dấu cách, tổng số bit phải là bội số của 8, và thông báo lỗi cho biết đã đếm được bao nhiêu bit để bạn tìm ra chữ số bị thiếu.

Hex hoạt động tương tự, hai chữ số cho mỗi byte. Khi giải mã, các tiền tố và dấu ngăn như 0x, \x, dấu hai chấm và dấu phẩy được bỏ đi, nên bạn dán thẳng từ trình gỡ lỗi hoặc mảng C được.

Mã hóa và giải mã URL

Mã hóa URL thay các ký tự không an toàn bằng % và hai chữ số hex: dấu cách thành %20, é thành %C3%A9. Hãy chọn đúng phạm vi:

Thực thể HTML

Chế độ HTML thoát năm ký tự có thể làm hỏng mã đánh dấu: & < > " và '. Vì vậy <b> thành &lt;b&gt; và hiện ra dưới dạng chữ thay vì in đậm. Khi giải mã, công cụ hiểu cả thực thể có tên như &eacute; và &nbsp; lẫn thực thể số như &#8364; (€).

Chuyển ảnh sang Base64 data URI

Thả một file vào khung phía dưới để lấy Base64 của nó, sẵn ở dạng data URI, chuỗi thuần, thẻ <img> hoặc nền CSS. Phần hiển thị dung lượng cho thấy cái giá phải trả. Base64 làm tăng thêm một phần ba, nên chỉ đáng dùng cho thứ nhỏ như biểu tượng 1 KB, nơi tiết kiệm một yêu cầu HTTP quan trọng hơn vài byte dư. Với ảnh 200 KB, file ảnh thông thường tốt hơn: nhỏ hơn, được lưu đệm, và không làm HTML hay CSS phình to.

Dung lượng fileDung lượng Base64
1 KB (1.024 byte)1.368 ký tự
10 KB13.656 ký tự
50 KB68.268 ký tự
1 MB1.398.104 ký tự

Chiều ngược lại cũng được. Dán Base64 hoặc data URI vào bên phải và, nếu đó không phải văn bản, công cụ đọc vài byte đầu để xác định loại file (PNG, JPEG, GIF, WebP, PDF, ZIP, MP3 và nhiều loại khác), hiện bản xem trước cho ảnh và cho tải về với đúng phần mở rộng.

Không có gì được tải lên. Điều này quan trọng hơn bình thường ở đây, vì những chuỗi người ta giải mã thường là khóa API, token phiên và tệp đính kèm email.

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

Làm sao giải mã Base64?

Dán chuỗi Base64 vào ô bên phải, văn bản đã giải mã hiện ngay ở bên trái. Ví dụ SGVsbG8= giải mã thành Hello. Nếu kết quả là ảnh hoặc PDF chứ không phải văn bản, nút Lưu thành file sẽ xuất hiện.

Làm sao chuyển văn bản sang nhị phân?

Chọn Nhị phân và gõ văn bản vào bên trái. Mỗi byte thành 8 bit, nên Hi thành 01001000 01101001. Chữ ngoài bảng chữ cái tiếng Anh, như é hay chữ tiếng Việt có dấu, chiếm từ hai byte trở lên trong UTF-8, tức 16 bit trở lên.

Làm sao dịch mã nhị phân trở lại thành chữ?

Chọn Nhị phân và dán dãy số 0 và 1 vào ô bên phải. Mỗi nhóm 8 bit được đọc thành một byte, nên 01001000 01101001 đọc là Hi. Nhóm 7 bit cách nhau bằng dấu cách cũng dùng được; chúng được thêm số 0 ở đầu.

Làm sao biến ảnh thành data URI Base64?

Thả ảnh vào ô file ở cuối trang và sao chép kết quả. Ảnh PNG thành data:image/png;base64,iVBORw0KGgo… để bạn dán vào img src hoặc nền CSS. Kết quả sẽ lớn hơn file khoảng 33%.

Vì sao Base64 lớn hơn bản gốc khoảng 33%?

Base64 viết mỗi 3 byte thành 4 ký tự, nên 30 KB ảnh thành khoảng 40 KB văn bản. Ngắt dòng MIME sau mỗi 76 ký tự cộng thêm khoảng 2,6%. Vì vậy data URI chỉ hợp lý với file nhỏ.

Base64 và Base64 an toàn cho URL khác nhau thế nào?

Base64 an toàn cho URL đổi + thành - và / thành _, thường bỏ luôn dấu = ở cuối, để chuỗi nằm được trong URL hoặc tên file. Token JWT dùng kiểu này. Công cụ giải mã này tự nhận cả hai bảng ký tự.

Làm sao giải mã URL có %20 và %3A?

Chọn URL và dán văn bản vào bên phải. %20 thành dấu cách và %3A thành dấu hai chấm, nên https%3A%2F%2Fexample.com đọc là https://example.com. Tích Dấu cách thành + nếu văn bản lấy từ biểu mẫu, nơi dấu cách được viết là +.

Văn bản hoặc file của tôi có bị gửi lên máy chủ không?

Không. Mọi việc mã hóa và giải mã chạy trong trình duyệt bằng JavaScript, nên dùng an toàn cho API key, token và file riêng tư.