Ninawezaje kuamua kamba ya msingi kutoka kwa mstari wa amri?


Nenda kwa jibu lililokubaliwa


Ningependa kuandika hati ya bash ili kuamua kamba ya msingi. Kwa mfano mimi huandika decode QWxhZGRpbjpvcGVuIHNlc2FtZQ== na hu Prints Aladdin:open sesame na inarudi kwa haraka.

Kufikia sasa nimejaribu faili rahisi ya bash iliyo python -m base64 -d $1 na amri hii inatarajia jina la faili sio kamba. Je! Kuna amri nyingine isiyo ya kuingiliana (sio lazima katika moduli ya Python) ambayo ninaweza kukimbia kutoka kwenye mstari wa amri kufanikisha hili, bila kulazimika kufunga vifurushi yoyote ya ziada? (Au nikifanya, kitu cha juu sana.)


442





2012-08-21




Idadi ya majibu: 7


Tumia tu base64 programu kutoka kwenye coreutils kifurushi:

 echo QWxhZGRpbjpvcGVuIHNlc2FtZQ== | base64 --decode
 

Au, ni pamoja na herufi mpya

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

pato (pamoja na newline):

 Aladdin:open sesame
 

646


2012-08-21

kufungua kunaweza pia kufunga na kusanidi msingi64

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

BONYEZA: Mfano ambapo kamba iliyosimbwa ya msingi inaisha kwenye mistari mingi:

 $ 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


2012-08-21

Hapa unaenda!

Ongeza yafuatayo chini ya ~/.bashrc faili yako :

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

Sasa, fungua Kituo kipya na uamuru amri.

 decode QWxhZGRpbjpvcGVuIHNlc2FtZQ==
 

Hii itafanya kile ulichouliza katika swali lako.


38


2012-08-21

Kwa utegemezi wako wa asili inawezekana kufanya hivi na muundo mdogo kwa hati yako ya asili:

 echo $1 | python -m base64 -d
 

Ikiwa hautapitisha jina la faili, moduli hiyo ya python inasoma kutoka kwa pembejeo ya kawaida. Ili bomba parameta ya kwanza ndani yake unaweza kutumia echo $1 | .


20


2012-10-05

Nilifanya maoni ya msingi wa amri ya msingi wa msingi wa -64 katika http://wiki.opensslfoundation.com/index.php?title=Command_Line_Utility . Kwa hivyo ninatoa Onyo wakati wa kutumia desoding msingi64

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

 V2VsY29tZSB0byBvcGVuc3NsIHdpa2kK



openssl base64 -d <<< 'V2VsY29tZSB0byBvcGVuc3NsIHdpa2kK'

Welcome to openssl wiki
 

urefu wa mstari wa onyo ni mdogo kwa herufi 64 kwa chaguo-msingi katika kufungua :

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

 V2VsY29tZSB0byBvcGVuc3NsIHdpa2kgd2l0aCBhIHZlcnkgbG9uZyBsaW5lIHRo
 YXQgc3BsaXRzLi4uCg==

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

=> HAKUNA!

kuwa na uwezo wa kuamua laini ya msingi bila malisho ya mstari ambayo yanazidi matumizi ya wahusika 64-Chaguo:

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

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

Hii ni bora kwa matokeo ya msingi ya mgawanyiko wa msingi katika safu za herufi 64 tangu -A chaguo ni BUGGY (kikomo na faili refu).


13


2013-03-23

Kutumia perl

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

Au sawa na python

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

4


2015-07-02

Ili kuongeza njia nyingine ya kufanya hivyo:

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

2


2016-06-15