Chuyển đổi miễn phí

Bộ mã hóa Base64 / Bộ giải mã

Mã hóa văn bản hoặc tệp thành Base64 và giải mã chuỗi Base64 ngay lập tức trong trình duyệt của bạn. Miễn phí, riêng tư và không cần tải lên.

Về công cụ này

Base64 là sơ đồ mã hóa biểu thị dữ liệu nhị phân dưới dạng văn bản ASCII sử dụng 64 ký tự có thể in được: A-Z, a-z, 0-9, dấu cộng (+) và dấu gạch chéo (/), với dấu bằng (=) được sử dụng để đệm. Định dạng này ban đầu được thiết kế để làm cho các tệp đính kèm nhị phân tồn tại trong quá trình truyền email sạch 7 bit, nhưng ngày nay nó đã mở rộng sang hàng chục mục đích sử dụng: URL dữ liệu trong HTML, JSON chứa dữ liệu hình ảnh, tải trọng JWT, tiêu đề xác thực cơ bản và bất kỳ giao thức dựa trên văn bản nào cần mang byte.

Mã hóa lấy 3 byte đầu vào và tạo ra 4 ký tự ASCII đầu ra. Do đó, đầu ra dài hơn 33% so với đầu vào - đó là chi phí để điều chỉnh nhị phân thành định dạng an toàn cho văn bản. Giải mã đảo ngược quá trình một cách chính xác, khôi phục các byte gốc từ văn bản được mã hóa.

Công cụ này xử lý cả hai hướng. Chế độ mã hóa lấy văn bản đầu vào (hoặc tệp nhị phân thông qua tải lên) và tạo ra văn bản base64. Chế độ giải mã lấy văn bản base64 và tạo ra văn bản gốc hoặc tệp nhị phân có thể tải xuống. Biến thể an toàn cho URL (sử dụng - và _ thay cho + và /) được hỗ trợ cho mã thông báo và số nhận dạng.

Tại sao nên sử dụng Base64

Base64 là cách tiêu chuẩn để nhúng dữ liệu nhị phân trong ngữ cảnh chỉ có văn bản. Hình ảnh nội tuyến trong HTML sử dụng URL dữ liệu (data:image/png;base64,...) nên một biểu tượng nhỏ có thể xuất hiện cùng với trang mà không cần yêu cầu riêng. Tải trọng JSON mang hình ảnh, chứng chỉ hoặc chữ ký mã hóa chúng dưới dạng chuỗi base64. Mã thông báo JWT là ba phân đoạn được mã hóa base64 được phân tách bằng dấu chấm.

Base64 cũng chuẩn hóa việc xử lý ký tự cho các giao thức xử lý sai hệ nhị phân 8 bit. Tiêu đề xác thực (Xác thực cơ bản sử dụng base64), tệp đính kèm email, tệp cấu hình chứa khóa và nhiều API yêu cầu base64 vì nhị phân không thể đi qua đường dẫn của chúng một cách đáng tin cậy.

Cách sử dụng

Dán dữ liệu, chọn hướng.

  1. Chọn mã hóa hoặc giải mã: Mã hóa tạo ra văn bản base64 từ kiểu nhập nhị phân hoặc văn bản. Giải mã đảo ngược quá trình.
  2. Thêm đầu vào: Để mã hóa, hãy dán văn bản hoặc tải lên tệp nhị phân. Để giải mã, dán văn bản base64. Công cụ này tự động phát hiện biến thể an toàn cho URL.
  3. Chuyển đổi: Trình duyệt sử dụng btoa để mã hóa và atob để giải mã (với khả năng xử lý UTF-8 cho văn bản không phải ASCII). Đầu ra là chính xác và xác định.
  4. Sao chép hoặc tải xuống: Văn bản được mã hóa có thể được nhúng vào URL, JSON, URL dữ liệu HTML hoặc bất kỳ giao thức dựa trên văn bản nào. Các tệp tải xuống nhị phân được giải mã dưới dạng tệp có phần mở rộng dự đoán phù hợp dựa trên loại tệp được phát hiện.

Các trường hợp sử dụng phổ biến

Chi tiết kỹ thuật

Base64 ánh xạ mỗi 6 bit đầu vào thành một trong 64 ký tự đầu ra. Ba byte đầu vào (24 bit) tạo ra bốn ký tự đầu ra. Khi độ dài đầu vào không phải là bội số của 3, bộ mã hóa sẽ thêm một hoặc hai dấu bằng để đệm đầu ra thành bội số của 4 ký tự.

Base64 an toàn URL (được định nghĩa trong RFC 4648 phần 5) thay thế + bằng - và / bằng _ để tạo ra các chuỗi an toàn để sử dụng trong URL và tên tệp mà không cần thoát thêm. Dấu bằng đệm đôi khi bị bỏ qua trong ngữ cảnh an toàn cho URL; bộ giải mã thường chấp nhận cả hai hình thức.

btoa và atob của JavaScript xử lý trực tiếp ASCII nhưng không thành công trên các chuỗi không phải ASCII. Đối với văn bản UTF-8, trình chuyển đổi sử dụng TextEncode/TextDecoding để chuyển đổi giữa văn bản và nhị phân, sau đó mã hóa base64 nhị phân. Điều này xử lý chính xác biểu tượng cảm xúc, ký tự có dấu và chữ viết không phải tiếng Latinh.

Thực tiễn tốt nhất

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

Mã hóa Base64 được sử dụng để làm gì?
Base64 chuyển đổi dữ liệu nhị phân thành văn bản ASCII. Các cách sử dụng phổ biến bao gồm nhúng hình ảnh trong HTML (URI dữ liệu), mã hóa tệp đính kèm email, truyền dữ liệu nhị phân trong API JSON và lưu trữ các đốm màu nhị phân trong cơ sở dữ liệu dựa trên văn bản.
Mã hóa Base64 có mã hóa dữ liệu của tôi không?
Không. Base64 là mã hóa, không phải mã hóa. Bất cứ ai cũng có thể giải mã chuỗi Base64. Nó được thiết kế để vận chuyển dữ liệu an toàn, không phải để bảo mật. Sử dụng mã hóa thực tế (AES, RSA) cho dữ liệu nhạy cảm.
Tại sao Base64 tăng kích thước tệp?
Base64 biểu thị mỗi 3 byte đầu vào dưới dạng 4 ký tự ASCII, dẫn đến tăng kích thước khoảng 33%. Đây là sự đánh đổi để có thể nhúng dữ liệu nhị phân một cách an toàn vào các định dạng văn bản.
Tôi có thể mã hóa hình ảnh sang Base64 không?
Đúng. Tải tệp hình ảnh lên và công cụ sẽ tạo chuỗi Base64 mà bạn có thể sử dụng làm URI dữ liệu (data:image/png;base64,...) trong HTML hoặc CSS.
Mã thông báo JWT có phải là base64 không?
Có - JWT bao gồm ba phân đoạn được mã hóa base64url được phân tách bằng dấu chấm. Đầu tiên là tiêu đề, thứ hai là tải trọng, thứ ba là chữ ký.
Dữ liệu của tôi có được tải lên máy chủ không?
Không. Quá trình mã hóa và giải mã diễn ra trong trình duyệt của bạn bằng cách sử dụng btoa, atob, TextEncode và TextDecoding.
Kích thước tối đa là bao nhiêu?
Lên đến 50 MB. Bộ nhớ trình duyệt giới hạn kích thước thực tế cho đầu vào rất lớn.
Tại sao đầu ra được giải mã của tôi trông giống như rác?
Nhiều khả năng nguồn là nhị phân, không phải văn bản. Chuyển sang chế độ tải tệp xuống để lấy tệp nhị phân hoặc kiểm tra xem đầu vào có thực sự là văn bản được mã hóa base64 chứ không phải nhị phân hay không.