أود أن أكتب سيناريو باش لفك شفرة سلسلة باس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 فك. والآن يمكنني فك الشفرة إلى القيمة المتوقعة.