Base64 解码有时在结果末尾有“%”。应该是这样的结果吗?有什么解决办法吗?

use*_*119 3 linux base64 encoding

我只是在研究 base64 编码和解码算法并尝试一些程序。我在网上找到了一些示例代码,但结果对我来说看起来有点奇怪。这是链接:http : //knol2share.blogspot.com/2011/07/base64-encoding-and-decoding-in-c.html

我试图用它来编码和解码一个字符串。
输入字符串:02613
Base64 Encoded value: MDI2MTM=
Base64 Decoded value: 02613% -- 不知道为什么会有“%”,有没有办法得到正确的结果

我什至在 linux 中尝试了 Base64 程序,并在删除编码中的换行符后得到了相同的结果。

结果如下: %echo -n 02613 |base64
MDI2MTM=
%echo -n MDI2MTM= | base64 --解码
02613%

有谁知道如何使用输入字符串获得完全相同的结果?谢谢。

Joh*_*fer 16

如果解码的文本不以换行符结尾,则打印它。

$ printf "foobar\n" | base64 | base64 --decode
foobar
Run Code Online (Sandbox Code Playgroud)
$ printf "foobar" | base64 | base64 --decode
foobar%
Run Code Online (Sandbox Code Playgroud)


小智 5

这是 echo 命令的示例,-n 选项将删除换行符,这就是为什么在第一种情况下我们没有符号 % 而在第二种情况下附加了一个符号。

\n
\xe2\x9e\x9c  ~ echo "HELLO" | base64 | base64 --decode\nHELLO\n\xe2\x9e\x9c  ~ echo -n "HELLO" | base64 | base64 --decode\nHELLO%\n
Run Code Online (Sandbox Code Playgroud)\n


mle*_*eko 2

% 符号不是命令提示符吗?解码 b64 后添加新行并检查。