psy*_*ott 25 php base64 encoding
PHP base64_encode
正在向linux base64
命令返回一个不同的字符串.为什么是这样?
PHP:
$ php
<?php
echo base64_encode('test');
?>
dGVzdA==
Run Code Online (Sandbox Code Playgroud)
Linux base64:
$ echo 'test' | base64
dGVzdAo=
Run Code Online (Sandbox Code Playgroud)
kni*_*ttl 44
echo
通常在字符串的末尾输出一个新行字符,以禁止使用该-n
开关:
$ echo -n 'test' | base64
dGVzdA==
Run Code Online (Sandbox Code Playgroud)
与PHP类似:
$ php
<?php
echo base64_encode("test\n");
?>
dGVzdAo=
Run Code Online (Sandbox Code Playgroud)
c69*_*c69 12
在浏览器中打开控制台,输入atob('dGVzdAo=')
:
http://gyazo.com/68d16f666c394887929408c519ac1b23.png
您的输入中有额外的字符.那就是0x0A
(LF).
在做回声时它给了我这个:
MacPro:~ bardiir$ echo 'test'
test
MacPro:~ bardiir$
Run Code Online (Sandbox Code Playgroud)
我猜你可能在unix中有一个包含的行结尾,因为echo可能会附加一个换行符,即使你将它传递给base64编码也是如此.