$ echo -n "apfjxkic-omyuobwd339805ak:60a06cd2ddfad610b9490d359d605407" | base64
YXBmanhraWMtb215dW9id2QzMzk4MDVhazo2MGEwNmNkMmRkZmFkNjEwYjk0OTBkMzU5ZDYwNTQw
Nw==
आउटपुट से पहले का रिटर्न है Nw==
। लिनक्स में बेस 64 उत्पन्न करने का सही तरीका क्या है?
5
क्या आप निश्चित हैं कि आउटपुट में एक नई रेखा होती है, और यह केवल आपकी विंडो रैपिंग नहीं है? उस आदेश ने मेरे लिए मैक पर ठीक काम किया। आप कौन सा ओएस उपयोग कर रहे हैं?
—
इयान
RFC 2045, जिसने बेस 64 को परिभाषित किया, 76 वर्णों (अधिकतम) के बाद एक नई रूपरेखा को बताता है। आपको क्या लगता है अपने उदाहरण है नहीं सही तरीका?
—
MSalters
@MSalters RFC 4648 विशेष रूप से उस मुद्दे को संबोधित करता है। कार्यान्वयन आवश्यक रूप से आधार-एन्कोडेड डेटा में लाइन फीड नहीं जोड़ते हैं जब तक कि इस दस्तावेज़ का उल्लेख करने वाले विनिर्देश स्पष्ट रूप से आधार एनकोडर को वर्णों की एक विशिष्ट संख्या के बाद लाइन फीड जोड़ने के लिए निर्देशित नहीं करते हैं। => यह कार्यान्वयन RFC 4648 के अनुसार गलत है, जब तक कि यह 'प्लेन' बेस 64-एनकोडेड आउटपुट का दावा करता है। अधिक दिलचस्प बात यह है कि, GNU बेस 64 (प्रश्न में?) मैनपाज विशेष रूप से RFC 3548 को संदर्भित करता है, जो डिफ़ॉल्ट रूप से कोई रैपिंग भी निर्दिष्ट करता है, और जो RFC 4648 ऑबसेट्स।
—
बॉब
@ याकूब: एपीआई स्थिरता के लिए आरएफसी का थोड़ा कम सम्मान है; एक बेस 64 टूल स्क्रिप्ट्स को तोड़े बिना इसका आउटपुट फॉर्मेट नहीं बदल सकता है।
—
एमएसलटर्स
@MSalters मैं निश्चित नहीं हो सकता कि एक पुराना संस्करण मौजूद नहीं है, लेकिन GNU बेस 64 2004 में लिखा गया था और AFAICT ने हमेशा RFC 3548 का पालन करने का दावा किया। RFC 3548 में समान "MUST NOT add line feeds" क्लॉज है। यहां तक कि मूल कार्यान्वयन "गलत" था। बहुत कम से कम, इसका कार्यान्वयन इसके प्रलेखन से मेल नहीं खाता है। वैसे भी, आपने ओपी का उदाहरण सही है और एक आरएफसी का संदर्भ दिया है; मेरी प्रतिक्रिया सही RFC है जो वास्तव में अलगाव में बेस 64 को परिभाषित करता है। यदि आपका जवाब "ऐतिहासिक कारणों से" है, तो ऐसा ही हो, लेकिन यहाँ ओपी गलत नहीं है।
—
बॉब