0

Kết quả Giải mã

Ascii85

Kết quả Mã hóa

Ascii85
Loại

Về Ascii85

Ascii85 là phương thức mã hóa sử dụng các ký tự ASCII 7-bit có thể in được. Còn được gọi là Base85.

Trong Ascii85, dữ liệu được chia thành từng 4 byte và chuyển đổi thành 5 ký tự ASCII.

Có nhiều biến thể của Ascii85. DenCode hỗ trợ 3 loại sau. Bản gốc là btoa, sau đó Adobe và Z85 xuất hiện.

Tổng quan
Z85Được sử dụng trong ZeroMQ. Loại bỏ các ký tự cần escape như "\" (backslash) và "'" (apostrophe).
AdobeĐược sử dụng để mã hóa hình ảnh trong tệp PostScript và PDF (Portable Document Format) của Adobe. Được bao quanh bởi "<~" và "~>".
btoaĐịnh dạng lệnh btoa của UNIX. Trước đây dùng để trao đổi dữ liệu nhị phân, nhưng hiện nay không còn phổ biến. Được bao quanh bởi các dòng "xbtoa Begin" và "xbtoa End".

Các ký tự ASCII được sử dụng trong Ascii85 như sau. Giá trị 4 byte được xử lý như số nguyên không dấu big-endian, tính toán các chữ số trong hệ cơ số 85 (5 chữ số), và dựa vào các ký tự ASCII sau để lấy kết quả chuyển đổi Ascii85.

Ký tự ASCII
Z850123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#
Adobe!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu
btoa!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu
(Bản gốc là các ký tự từ " " (space) đến "t", nhưng do một số trình gửi thư loại bỏ dấu cách ở cuối, sau này được thay thế bằng các ký tự từ "!" đến "u".)

Ví dụ, nếu chuyển đổi "Hello" bằng Ascii85, kết quả sẽ như sau:

1. Chia thành từng 4 byte. Nếu không đủ 4 byte, đệm thêm "00" vào cuối.

48656C6C(16) 6F000000(16)  (Hell o)

2. Xử lý mỗi 4 byte như số nguyên không dấu big-endian và chuyển đổi giá trị đó thành các chữ số trong hệ cơ số 85.

48656C6C(16)
= 1214606444(10)
= 23 * 854 + 22 * 853 + 66 * 852 + 52 * 85 + 49
6F000000(16)
= 1862270976(10)
= 35 * 854 + 57 * 853 + 33 * 852 + 65 * 85 + 26

3. Chuyển đổi các chữ số hệ cơ số 85 sang ký tự ASCII. Nếu đã đệm "00" vào cuối, đối với Adobe/Z85 sẽ loại bỏ phần đệm.

23226652493557336526
Z85nm=QNzV
Adobe87cURDZ
btoa87cURDZBb;

4. Nối tất cả các ký tự lại để có kết quả chuyển đổi Ascii85. Adobe được bao quanh bởi "<~" & "~>" và xuống dòng mỗi 80 ký tự. btoa được bao quanh bởi "xbtoa Begin" & "xbtoa End" (bao gồm cả độ dài dữ liệu và checksum) và xuống dòng mỗi 78 ký tự.

Kết quả chuyển đổi
Z85nm=QNzV
Adobe<~87cURDZ~>
btoaxbtoa Begin
87cURDZBb;
xbtoa End N 5 5 E 42 S 1f9 R a9f

Ngoài ra, một số dạng viết tắt được định nghĩa.

Dạng viết tắt
Z85Không
Adobe00000000(16) -> z
btoa00000000(16) -> z
20202020(16) -> y (từ btoa v4.2 trở đi)