如果我使用base64编码由七个字符组成的字符串,例如abcdefg使用https://www.base64encode.org/网站,则结果为YWJjZGVmZw==。尾随的“ ==”字符是填充字符,因为输入字符的数量不能除以7。
我必须在bash中重现此结果。因此,我尝试了以下命令:
echo "abcdefg" | base64
Run Code Online (Sandbox Code Playgroud)
但是,现在的结果有所不同:
YWJjZGVmZwo=
Run Code Online (Sandbox Code Playgroud)
我正在使用安装了base64(GNU coreutils)8.25的Ubuntu。
如果有人可以给我提示,我将很高兴。
我刚刚注意到,所描述行为的原因是最后echo写的换行符。因此,下面的正确命令将取消换行符
echo -n "abcdefg" | base64
Run Code Online (Sandbox Code Playgroud)
然后输出就像我期望的那样:
YWJjZGVmZw==
Run Code Online (Sandbox Code Playgroud)