Base64 लिखने का ढंग है, कूटलेखन नहीं
Base64 मनमाने बाइटों को सिर्फ A-Z, a-z, 0-9 और दो चिह्नों से दोबारा लिखता है। तीन बाइट छह-छह बिट के चार समूहों में बँटते हैं और हर समूह एक अक्षर बनता है, इसलिए निकलने वाला पाठ इनपुट का लगभग चार-तिहाई लंबा होता है। बराबर के चिह्न आखिरी अधूरे समूह को भर देते हैं।
इसका काम बाइनरी डेटा को उन रास्तों से ले जाना है जो सिर्फ पाठ लेते हैं: ईमेल के अनुलग्नक, पन्ने में सीधे जड़े चित्र, और HTTP शीर्षक में रखी साख। यह बीच के तंत्रों को उन बाइटों को बिगाड़ने से रोकता है जिनकी उन्हें उम्मीद नहीं थी।
मल्टीबाइट अक्षर पहले UTF-8 में बदले जाते हैं और फिर एन्कोड होते हैं। शब्द café पाँच बाइट का है क्योंकि é दो बाइट लेता है, इसलिए Base64 में आठ अक्षर बनते हैं — उतने ही जितने पाँच अंग्रेज़ी अक्षरों के शब्द से। इसलिए आउटपुट की लंबाई से मूल अक्षरों की संख्या का भरोसेमंद अंदाज़ा नहीं मिलता।
एन्कोडिंग को सुरक्षा न समझें
Base64 को कोई भी पल भर में उलट सकता है। पासवर्ड या टोकन को Base64 में रखना उसे छिपाता नहीं; बस पढ़ने में असुविधाजनक बनाता है, और लॉग या बैकअप तक पहुँचते ही वह पूरी तरह खुला होता है। जिन मानों को गुप्त रहना है उन्हें कूटलेखन या हैश चाहिए।
कच्चा Base64 किसी URL में डाल देने से वह टूट जाता है। मानक वर्णमाला के जोड़ और तिरछी रेखा वाले अक्षर वेब पते में कुछ और मतलब रखते हैं, इसलिए URL के लिए वह सुरक्षित रूप चाहिए जो उन दोनों को बदल देता है।
डिकोडिंग असफल होने का कारण आमतौर पर लंबाई या भराई होता है। Base64 पाठ की लंबाई चार का गुणज होनी चाहिए, और नकल करते समय आई नई पंक्तियाँ या बिखरी खाली जगहें पढ़ने वाले से उसे ठुकरा देंगी।