PHP base64_encode 和 *nix base64 之间有什么区别

2022-08-30 16:54:42

PHP正在向linux命令返回一个不同的字符串。这是为什么呢?base64_encodebase64

菲律宾比索:

$ php
<?php
echo base64_encode('test');
?>
dGVzdA==

Linux base64:

$ echo 'test' | base64
dGVzdAo=

答案 1

echo通常在字符串的末尾输出一个新的行字符,以禁止使用开关:-n

$ echo -n 'test' | base64
dGVzdA==

与 PHP 类似:

$ php
<?php
echo base64_encode("test\n");
?>
dGVzdAo=

答案 2

在浏览器中打开控制台,键入 :atob('dGVzdAo=')


(资料来源:gyazo.com

您的输入中有额外的字符。那就是(LF)。0x0A


推荐