আমি একটি বেস ডিকোড করার জন্য একটি ব্যাশ স্ক্রিপ্ট লিখতে চাই 64 স্ট্রিং. উদাহরণস্বরূপ আমি টাইপ করি decode QWxhZGRpbjpvcGVuIHNlc2FtZQ== এবং এটি প্রিন্ট করে Aladdin:open sesame দ্রুত ফিরে আসা;
এ পর্যন্ত আমি ধারণকারী একটি সহজ ব্যাশ ফাইল চেষ্টা করেছি python -m base64 -d $1 কিন্তু এই কমান্ড একটি ফাইলের নাম না একটি স্ট্রিং আশা. কোন অ-ইন্টারেক্টিভ কমান্ড (পাইথন মডিউলে অগত্যা নয়) আছে যা আমি কমান্ড লাইন থেকে এটি অর্জনের জন্য চালাতে পারি, কোন অতিরিক্ত প্যাকেজ ইনস্টল না করেই? (অথবা যদি আমি করি, কিছু অতি-সংক্ষিপ্ত .)
সম্পাদনা করুন: একটি উদাহরণ যেখানে বেস 64 এনকোড স্ট্রিং একাধিক লাইনে শেষ হয়:
$ openssl enc -base64 <<< 'And if the data is a bit longer, the base64 encoded data will span multiple lines.'QW5kIGlmIHRoZSBkYXRhIGlzIGEgYml0IGxvbmdlciwgdGhlIGJhc2U2NCBlbmNvZGVkIGRhdGEgd2lsbCBzcGFuIG11bHRpcGxlIGxpbmVzLgo=$ openssl enc -base64 -d << EOF> QW5kIGlmIHRoZSBkYXRhIGlzIGEgYml0IGxvbmdlciwgdGhlIGJhc2U2NCBlbmNv> ZGVkIGRhdGEgd2lsbCBzcGFuIG11bHRpcGxlIGxpbmVzLgo=> EOFAnd if the data is a bit longer, the base64 encoded data will span multiple lines.
openssl base64 -e <<< 'Welcome to openssl wiki' V2VsY29tZSB0byBvcGVuc3NsIHdpa2kKopenssl base64 -d <<< 'V2VsY29tZSB0byBvcGVuc3NsIHdpa2kK'Welcome to openssl wiki
সতর্কতা বেস 64 লাইনের দৈর্ঘ্য ওপেনএসএসএলে ডিফল্টরূপে 64 টি অক্ষরের মধ্যে সীমাবদ্ধ :
openssl base64 -e <<< 'Welcome to openssl wiki with a very long line that splits...' V2VsY29tZSB0byBvcGVuc3NsIHdpa2kgd2l0aCBhIHZlcnkgbG9uZyBsaW5lIHRo YXQgc3BsaXRzLi4uCg==openssl base64 -d <<< 'V2VsY29tZSB0byBvcGVuc3NsIHdpa2kgd2l0aCBhIHZlcnkgbG9uZyBsaW5lIHRoYXQgc3BsaXRzLi4uCg=='
>= কিছুই না !
লাইন ফিড ছাড়াই বেস 64 লাইনটি ডিকোড করতে সক্ষম হতে যা 64 অক্ষরের বেশি ব্যবহার করে-একটি বিকল্প :
openssl base64 -d -A <<<'V2VsY29tZSB0byBvcGVuc3NsIHdpa2kgd2l0aCBhIHZlcnkgbG9uZyBsaW5lIHRoYXQgc3BsaXRzLi4uCg=='Welcome to openssl wiki with a very long line that splits...
এটি যাইহোক অ্যাকুয়ালি স্প্লিট বেস 64 ফলাফল থেকে 64 টি অক্ষরের লাইনে ভাল-একটি বিকল্প বগি ( দীর্ঘ ফাইলের সাথে সীমা ).
আমি এই এক চুল টানা কয়েক মুহূর্ত ছিল কারণ base64 লিনাক্স টুল এবং এছাড়াও openssl ডিকোড করতে পারেন, প্রকৃতপক্ষে. কিন্তু আমি সামান্য ভুল মান ডিকোড যে এই বিশেষ বেস 64 এনকোড ফাইল আছে. কয়েক বাইট মেলে না, কিন্তু তারপর এই উপস্থিতি আছে EF BF BD EF BF BD যখন আমি দেখতে hexedit দর্শক. সঠিকভাবে সঙ্কেতমুক্ত প্রত্যাশিত আউটপুট তুলনায় এবং তারপর বাইট পরবর্তী ক্রম আবার মেলে. বাইটের এই অদ্ভুত ক্রম ইন-বেটওয়েনে ঢোকানো হয়েছে, একদা হিসাবে EF BF BD শুধু.
বিষয়টি সমাধান করার জন্য, আমাকে জাভা প্রেরক কীভাবে এটি এনকোড করে তা দেখতে হবে এবং তারপরে আমি একটি ছোট জাভা বেস 64 ডিকোডার তৈরি করেছি এবং এখন আমি প্রত্যাশিত মান ডিকোড করতে পারেন.