Mã hóa Base64

Mã hóa văn bản sang Base64, với bảng chữ cái tiêu chuẩn hoặc bảng an toàn cho URL, hoàn toàn trong trình duyệt của bạn.

Chạy hoàn toàn trong trình duyệt của bạn. Không có gì được tải lên, ghi log hay lưu trữ.

Base64 biến các byte bất kỳ thành những ký tự đi qua được một kênh văn bản: một header HTTP, một chuỗi JSON, phần thân email, một data URI. Đây là mã hóa (encoding), không phải mã hóa bảo mật (encryption), và ai cũng có thể đảo ngược nó ngay lập tức.

Cách hoạt động

Văn bản được đọc thành các byte UTF-8, sau đó cứ ba byte được chuyển thành bốn ký tự từ một bảng chữ cái gồm 64 ký tự. Khi độ dài không phải bội số của ba, kết quả được đệm thêm một hoặc hai dấu "=". Đó là lý do đầu ra Base64 luôn dài hơn đầu vào khoảng một phần ba.

Bảng chữ cái an toàn cho URL của RFC 4648 thay "+" và "/" bằng "-" và "_" và bỏ phần đệm, để giá trị có thể nằm trong query string hoặc tên tệp mà không cần thoát lại. JSON Web Token dùng biến thể này.

Ví dụ

Trường hợp Dữ liệu nhập Kết quả
Thông tin đăng nhập xác thực Basic aladdin:opensesame YWxhZGRpbjpvcGVuc2VzYW1l
Một đoạn văn bản có dấu, được mã hóa từ các byte UTF-8 của nó café Y2Fmw6k=

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

Base64 có bảo vệ dữ liệu của tôi không?

Hoàn toàn không. Đây là một cách mã hóa có thể đảo ngược, không có khóa và không có bí mật. Bất kỳ ai nhìn thấy thứ bạn mã hóa đều có thể đọc lại nó, kể cả trang này chỉ với một cú nhấp.

Vì sao đầu ra dài hơn đầu vào?

Bốn ký tự đầu ra mang ba byte đầu vào, nên kết quả tăng khoảng 33%, cộng thêm tối đa hai ký tự đệm. Phần phụ trội đó là cái giá để chuyển dữ liệu nhị phân qua một kênh chỉ chấp nhận văn bản.

Tôi nên chọn bảng chữ cái nào?

Bảng tiêu chuẩn cho mọi thứ đi trong phần thân hoặc header. Bảng an toàn cho URL khi giá trị nằm trong URL, tên tệp hoặc JWT, để "+", "/" và "=" không phải mã hóa phần trăm thêm một lần nữa.

Cần biết

  • Mọi thứ diễn ra trong trình duyệt của bạn. Nội dung bạn dán không được tải lên, không được ghi log và không được lưu trữ.

Nguồn

Tất cả công cụ Lập trình