0

डिकोड परिणाम

Ascii85

एन्कोड परिणाम

Ascii85
प्रकार

Ascii85 के बारे में

Ascii85, 7-बिट प्रिंट करने योग्य ASCII वर्णों का उपयोग करने वाली एक एन्कोडिंग योजना है। इसे Base85 भी कहा जाता है।

Ascii85 में, डेटा को 4 बाइट्स में विभाजित किया जाता है और उन्हें 5 ASCII वर्णों में परिवर्तित करके दर्शाया जाता है।

Ascii85 के कई वेरिएंट मौजूद हैं। DenCode निम्नलिखित तीन प्रकार के Ascii85 का समर्थन करता है। मूल btoa है, जिसके बाद Adobe और Z85 आए।

परिचय (Overview)
Z85ZeroMQ में उपयोग किया जाता है। इसमें "\" (बैकस्लैश) और "'" (अपोस्ट्रोफी) जैसे वर्णों का उपयोग नहीं किया जाता है जिन्हें एस्केप करने की आवश्यकता होती है।
AdobeAdobe के PostScript और PDF (Portable Document Format) फ़ाइलों के भीतर छवियों आदि को एन्कोड करने के लिए उपयोग किया जाता है। "<~" और "~>" से घिरा होता है।
btoaUNIX btoa कमांड का प्रारूप। अतीत में इसका उपयोग बाइनरी डेटा के आदान-प्रदान के लिए किया जाता था, लेकिन अब यह आम नहीं है। "xbtoa Begin" और "xbtoa End" लाइनों से घिरा होता है।

Ascii85 में उपयोग किए जाने वाले ASCII वर्ण निम्नानुसार हैं। 4-बाइट मान को big-endian unsigned integer के रूप में माना जाता है, और 85-आधार (base-85) के प्रत्येक अंक (5 अंक) की गणना करने के बाद, निम्नलिखित ASCII वर्णों के आधार पर Ascii85 रूपांतरण परिणाम प्राप्त किया जाता है।

ASCII वर्ण
Z850123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#
Adobe!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu
btoa!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu
(मूल रूप से " " (स्पेस) से "t" तक के वर्ण थे, लेकिन कुछ मेलर (mailer) अंत के स्पेस को हटा देते थे, इसलिए बाद में इसे स्पेस को छोड़कर "!" से "u" वर्णों से बदल दिया गया।)

उदाहरण के लिए, "Hello" को Ascii85 में बदलने पर परिणाम इस प्रकार होगा।

1. 4 बाइट्स में विभाजित करें। यदि 4 बाइट्स से कम हैं, तो अंत में "00" से पैडिंग करें।

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

2. प्रत्येक 4 बाइट्स को big-endian unsigned integer के रूप में मानें, और उस मान को 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. 85-आधार के प्रत्येक अंक को ASCII वर्ण में बदलें। यदि अंत में "00" से पैडिंग की गई थी, तो Adobe/Z85 के मामले में पैडिंग भाग को हटा दिया जाता है।

23226652493557336526
Z85nm=QNzV
Adobe87cURDZ
btoa87cURDZBb;

4. सभी वर्णों को जोड़कर Ascii85 का रूपांतरण परिणाम प्राप्त करें। Adobe "<~" और "~>" में बंद होता है और हर 80 वर्णों के बाद नई लाइन होती है। btoa "xbtoa Begin" और "xbtoa End" (इसमें डेटा लंबाई और चेकसम भी शामिल है) में बंद होता है और हर 78 वर्णों के बाद नई लाइन होती है।

रूपांतरण परिणाम
Z85nm=QNzV
Adobe<~87cURDZ~>
btoaxbtoa Begin
87cURDZBb;
xbtoa End N 5 5 E 42 S 1f9 R a9f

इसके अलावा, कुछ संक्षिप्त रूप (short forms) परिभाषित हैं।

संक्षिप्त रूप
Z85None (कोई नहीं)
Adobe00000000(16) -> z
btoa00000000(16) -> z
20202020(16) -> y (btoa v4.2 या बाद का संस्करण)