Answers:
只需使用base64
程序从coreutils
包:
echo QWxhZGRpbjpvcGVuIHNlc2FtZQ== | base64 --decode
或者,包括换行符
echo `echo QWxhZGRpbjpvcGVuIHNlc2FtZQ== | base64 --decode`
输出(包括换行符):
Aladdin:open sesame
base64 -d <<< QWxhZGRpbjpvcGVuIHNlc2FtZQ==
echo QWxhZGRpbjpvcGVuIHNlc2FtZQ== | "C:\Program Files\Git\usr\bin\base64" --decode 2> nul > example.txt
在使用git的base64的Windows上。
Just use
,因为许多人都对该base64
程序有所了解–但由于不能仅将字符串作为命令行选项插入,因此对于偶尔接触CLI的用户来说,很难获得正确的语法。
pbpaste | base64 --decode
。
openssl还可以编码和解码base64
$ openssl enc -base64 <<< 'Hello, World!'
SGVsbG8sIFdvcmxkIQo=
$ openssl enc -base64 -d <<< SGVsbG8sIFdvcmxkIQo=
Hello, World!
编辑: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.
coreutils
包含程序等“附加”套餐ls
,mkdir
,cp
,mv
,和chmod
。我怀疑如果没有它,您可以对机器执行任何有用的操作。
openssl
具有优于标准的base64
Git中的Bash在Windows上工作的,至少我已经安装上了年纪的Git 1.8.1版本的Bash。
使用原始的依赖关系,可以对原始脚本进行较小的修改来完成此操作:
echo $1 | python -m base64 -d
如果您不传递文件名,则该python模块将从标准输入中读取。要将第一个参数导入其中,可以使用echo $1 |
。
我在http://wiki.opensslfoundation.com/index.php?title=Command_Line_Utilities中注释了base64命令行。所以我在使用openssl base64解码时发出警告:
openssl base64 -e <<< 'Welcome to openssl wiki'
V2VsY29tZSB0byBvcGVuc3NsIHdpa2kK
openssl base64 -d <<< 'V2VsY29tZSB0byBvcGVuc3NsIHdpa2kK'
Welcome to openssl wiki
在openssl中,默认情况下,警告base64行长限制为64个字符:
openssl base64 -e <<< 'Welcome to openssl wiki with a very long line
that splits...'
V2VsY29tZSB0byBvcGVuc3NsIHdpa2kgd2l0aCBhIHZlcnkgbG9uZyBsaW5lIHRo
YXQgc3BsaXRzLi4uCg==
openssl base64 -d <<< 'V2VsY29tZSB0byBvcGVuc3NsIHdpa2kgd2l0aCBhIHZlcnkgbG9uZyBsaW5lIHRoYXQgc3BsaXRzLi4uCg=='
=>一无所有!
为了能够解码没有换行符超过64个字符的base64行,请使用-A选项:
openssl base64 -d -A <<<
'V2VsY29tZSB0byBvcGVuc3NsIHdpa2kgd2l0aCBhIHZlcnkgbG9uZyBsaW5lIHRoYXQgc3BsaXRzLi4uCg=='
Welcome to openssl wiki with a very long line that splits...
无论如何,这实际上更好地将base64分割成64个字符的行,因为-A选项是BUGGY(长文件的限制)。