发现的问题
同样的测试内容:chabctimes
在centos7下面:
# echo "chabctimes"|base64
Y2hhYmN0aW1lcwo=
在线测试平台 https://tool.oschina.net/encrypt?type=3 测试如下:
Y2hhYmN0aW1lcw==
根据第三方的验证,下面的内容是通过验证可以正常用的,上面的不行。从对比看,下面跟上面的结果比较,末尾倒数第2个字符一个是=一个是o
分析
一阵g搜索,再结合只有尾部一个字符差异,而且所有内容都是倒数第二个差异,所以初步猜测可能是尾部回车换行的差异导致。
经过不同内容的验证,基本确认以上的猜测:在linux环境下echo命令行的模式,比在线的方式多一个尾部的回车换行。
再就回车换行问题进一步进行确认,因为是1个字符也会多回车换行,还不是经典的76字符回车换行问题,所以怀疑是echo的问题,经搜索,确认是echo的问题。
解决
在echo中增加参数-n 去掉结尾回车换行,验证OK:
echo -n "chabctimes"|base64