چگونه می توانم یک رشته base64 را از خط فرمان رمزگشایی کنم؟


به جواب پذیرفته شده بروید




من می خواهم برای رمزگشایی یک رشته base64 یک اسکریپت bash بنویسم. به عنوان مثال من تایپ می کنم decode QWxhZGRpbjpvcGVuIHNlc2FtZQ== و آن را چاپ می کند Aladdin:open sesame و به سریع باز می گردد.

تاکنون یک پرونده ساده bash را امتحان کرده ام که حاوی python -m base64 -d $1 این دستور است که یک نام نام خانوادگی ندارد. آیا دستور غیر تعاملی دیگری وجود دارد (لزوماً در یک ماژول پایتون) که می توانم بدون نیاز به نصب بسته های اضافی ، از خط فرمان برای رسیدن به این هدف اجرا کنم؟ (یا اگر این کار را انجام دهم ، کاری بسیار فوق العاده است.)


442









7 :تعداد پاسخها


فقط base64 از coreutils بسته استفاده کنید:

 echo QWxhZGRpbjpvcGVuIHNlc2FtZQ== | base64 --decode
 

یا ، برای وارد کردن شخصیت جدید خط

 echo `echo QWxhZGRpbjpvcGVuIHNlc2FtZQ== | base64 --decode`
 

خروجی (شامل خط جدید):

 Aladdin:open sesame
 

646



opensl همچنین می تواند base64 را رمزگذاری و رمزگشایی کند

 $ openssl enc -base64 <<< 'Hello, World!'
SGVsbG8sIFdvcmxkIQo=
$ openssl enc -base64 -d <<< SGVsbG8sIFdvcmxkIQo=
Hello, World!
 

EDIT: مثالی که رشته رمزگذاری شده base64 روی چند خط خاتمه می یابد:

 $ openssl enc -base64 <<< 'And if the data is a bit longer, the base64 encoded data will span multiple lines.'
QW5kIGlmIHRoZSBkYXRhIGlzIGEgYml0IGxvbmdlciwgdGhlIGJhc2U2NCBlbmNv
ZGVkIGRhdGEgd2lsbCBzcGFuIG11bHRpcGxlIGxpbmVzLgo=
$ openssl enc -base64 -d << EOF
> QW5kIGlmIHRoZSBkYXRhIGlzIGEgYml0IGxvbmdlciwgdGhlIGJhc2U2NCBlbmNv
> ZGVkIGRhdGEgd2lsbCBzcGFuIG11bHRpcGxlIGxpbmVzLgo=
> EOF
And if the data is a bit longer, the base64 encoded data will span multiple lines.
 

97



بفرمایید!

موارد زیر را در پایین ~/.bashrc پرونده خود اضافه کنید:

 decode () {
  echo "$1" | base64 -d ; echo
}
 

اکنون ، یک ترمینال جدید را باز کرده و دستور را اجرا کنید.

 decode QWxhZGRpbjpvcGVuIHNlc2FtZQ==
 

این دقیقاً همان کاری است که در سؤال خود خواسته اید.


38



با وابستگی اصلی شما می توانید این کار را با یک تغییر جزئی در متن اصلی خود انجام دهید:

 echo $1 | python -m base64 -d
 

اگر نام پرونده را ارسال نکنید ، آن ماژول پایتون از ورودی استاندارد می خواند. برای لوله کشی پارامتر اول می توانید از آن استفاده کنید echo $1 | .


20



من خط فرمان base64 را در http://wiki.opensslfoundation.com/index.php؟title=Command_Line_Utilities استفاده کردم . بنابراین هنگام رمزگشایی از opensl base64 یک اخطار صادر می کنم:

  openssl base64 -e <<< 'Welcome to openssl wiki'

 V2VsY29tZSB0byBvcGVuc3NsIHdpa2kK



openssl base64 -d <<< 'V2VsY29tZSB0byBvcGVuc3NsIHdpa2kK'

Welcome to openssl wiki
 

هشدار دهنده طول خط base64 به طور پیش فرض در opensl به 64 نویسه محدود است :

  openssl base64 -e <<< 'Welcome to openssl wiki with a very long line
 that splits...'

 V2VsY29tZSB0byBvcGVuc3NsIHdpa2kgd2l0aCBhIHZlcnkgbG9uZyBsaW5lIHRo
 YXQgc3BsaXRzLi4uCg==

openssl base64 -d <<< 'V2VsY29tZSB0byBvcGVuc3NsIHdpa2kgd2l0aCBhIHZlcnkgbG9uZyBsaW5lIHRoYXQgc3BsaXRzLi4uCg=='
 

=> هیچ چیز!

قادر به رمزگشایی یک خط base64 بدون فید خط است که از 64 کاراکتر از 64 کاراکتر استفاده می کند:

 openssl base64 -d -A <<<
'V2VsY29tZSB0byBvcGVuc3NsIHdpa2kgd2l0aCBhIHZlcnkgbG9uZyBsaW5lIHRoYXQgc3BsaXRzLi4uCg=='

Welcome to openssl wiki with a very long line that splits...
 

به هر حال این نتیجه بهتر است که باعث شود تقسیم پایه base64 در 64 سطر شود زیرا گزینه - BUGGY (محدودیت با پرونده های طولانی) است.


13



استفاده كردن perl

 perl -MMIME::Base64 -ne 'printf "%s\n",decode_base64($_)' <<< "QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
 

یا همان با python

 python -m base64 -d <<< "QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
 

4



فقط برای اضافه کردن راه دیگری برای انجام این کار:

 emacs -Q --batch  -eval '(princ (base64-encode-string (read-string ": ")))'
 

2



انتشارات مرتبط


چگونه از خط فرمان به WiFi وصل شویم؟

چگونه می توان Chromium را از خط فرمان نصب کرد؟

چگونه صفحه کلید را از خط فرمان تغییر دهم؟

چگونه می توان فایل های mp3 را از خط فرمان پخش کرد؟

چگونه می توان رشته های رمزگذاری شده با درصد را در خط فرمان رمزگذاری و رمزگشایی کرد؟

چگونه وب کمهای موجود را از خط فرمان بررسی کنیم؟

نحوه جدا کردن دستگاه بلوتوث از خط فرمان

چگونه brackets.io را از خط فرمان نصب کنیم؟

آیا می توانم از خط فرمان banshee استفاده کنم؟

چگونه اسناد عجیب را از خط فرمان ادغام کنیم؟

[command-line] سوال برچسب


من می خواهم از طریق خط فرمان یک فهرست را از یک مکان به مکان دیگر کپی کنید

چگونه می توانم پیشوند 32 بیتی WINE ایجاد کنم؟

چگونه می توانم آخرین دستور cd را خنثی کنم؟

چگونه می توان پس از ایجاد حساب کاربری ، پوشه خانه کاربر را ساخت؟ [تکثیر]

چگونه NodeJS 4 را با استفاده از apt نصب کنیم؟

چگونه می توان کلید Command و Control را روی MacBook Pro تغییر داد؟

چگونه می توان فونت های بارگیری بسته ttf-mscorefonts-installer را بعد از اینکه می گوید نصب کرد ، ساخت؟

مرورگر Tor نصب Ubuntu 14.04 [کپی]

چرا یک جلسه CRON را می بینم که هر ساعت در /var/log/auth.log باز و بسته می شود؟