命令行 base64 命令的一个坑

0x00

linux 命令行里有一个base64命令,很常用,很方便。

比如要解码一个字符串,以往我都是直接 echo "xxx" | base64 -d 这样,一直都没什么问题,直到今天上午……

0x01

最近几天在学习网络编程,写了一个超简单的 SMTP 的 client ,写之前想着先 telnet smtp.163.com 25 连一下,手动输入命令试一试,

结果在 AUTH LOGIN 的时候死活登录不上,163、qq、学校邮箱,不管登哪个邮箱,用哪个邮箱提供商都不行。

我试来试去,研究了一下午,最后才发现是我 base64 的命令写的不对……

0x02

原来,直接 echo "xxxxx" 的时候会自动在后面加上换行符,管道传给 base64 的时候编码的当然就不是原来的字符串了

正确用法: echo -n "xxxx" | base64 [-d]

习惯的力量是巨大的,执行命令的时候一定要知其所以然呀

EOF