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]