UTILS.
100% trong trình duyệt
🔠

Mã hóa & Giải mã Ascii85 / Base85

Mã hóa byte sang Ascii85/Base85 và giải mã ngược lại, hỗ trợ biến thể tiêu chuẩn và Adobe (<~ ~>), hoàn toàn trong trình duyệt của bạn.

— kết quả hiển thị ở đây —

Về công cụ này

Công cụ Ascii85 / Base85 chuyển đổi dữ liệu nhị phân đến và từ Ascii85 (còn gọi là Base85), một cách mã hóa văn bản đóng gói bốn byte thành năm ký tự in được — gọn hơn Base64 khoảng 25%. Nó được dùng bên trong các luồng PostScript và PDF (biến thể Adobe) và trong các định dạng patch/diff. Mọi thứ chạy cục bộ trong trình duyệt của bạn bằng TextEncoder/TextDecoder; không có gì bạn dán vào được tải lên.

Quá trình mã hóa xử lý đầu vào theo các nhóm 4 byte big-endian, đọc mỗi nhóm như một số nguyên không dấu 32-bit, và phát ra năm chữ số bằng cách liên tục lấy giá trị modulo 85 rồi cộng thêm 33, để mỗi chữ số nằm trong khoảng in được từ '!' (33) đến 'u' (117). Một nhóm toàn số không rút gọn thành ký tự đơn 'z'. Một nhóm cuối chưa đủ với n byte (1–3) được đệm số không cho đủ bốn, mã hóa, và 4−n ký tự đầu ra cuối bị bỏ đi, cho ra n+1 ký tự. Biến thể Adobe bao kết quả trong '<~' và '~>'.

Giải mã đảo ngược quá trình: khoảng trắng và mọi lớp bao được loại bỏ, 'z' mở rộng thành bốn byte số không, các nhóm năm ký tự được đọc thành value = Σ (cᵢ−33)·85^(4−i) và ghi thành bốn byte big-endian, còn nhóm cuối chưa đủ với m ký tự (2–5) được đệm bằng 'u' (giá trị 84) và giữ lại m−1 byte. Chọn hướng, biến thể tiêu chuẩn hay Adobe, và byte đầu vào của bạn là văn bản UTF-8 hay hex.

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

Ký tự rút gọn 'z' là gì?
Một nhóm bốn byte số không (0x00000000) sẽ mã hóa thành '!!!!!'. Ascii85 thay vào đó phát ra ký tự đơn 'z' như một cách rút gọn nén. Khi giải mã, 'z' mở rộng ngược lại thành bốn byte số không — nhưng chỉ khi nó xuất hiện tại ranh giới nhóm, không bao giờ ở giữa một nhóm năm ký tự.
Ascii85 khác Base64 như thế nào?
Base64 mã hóa 3 byte thành 4 ký tự (33% chi phí phụ trội); Ascii85 mã hóa 4 byte thành 5 ký tự (25% chi phí phụ trội), nên gọn hơn. Base64 dùng bảng chữ 64 ký hiệu, còn Ascii85 dùng 85 ký hiệu ASCII in được từ '!' đến 'u'.
Biến thể Adobe là gì?
Ascii85 của Adobe, dùng trong PostScript và PDF, bao phần dữ liệu giữa các dấu phân cách '<~' và '~>'. Thuật toán lõi giống hệt nhau. Chọn biến thể Adobe sẽ thêm các dấu đó khi mã hóa và loại bỏ chúng khi giải mã; biến thể tiêu chuẩn thì bỏ chúng.
Dữ liệu của tôi có được tải lên đâu không?
Không. 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 thuần và TextEncoder/TextDecoder. Không có gì được gửi tới máy chủ, nên bạn có thể xử lý dữ liệu riêng tư hoặc nhị phân một cách an toàn.

Công cụ khác