2016-12-16 35 views
1

当调用base64 <<< username:password时,我得到这个结果:dXNlcm5hbWU6cGFzc3dvcmQKmacOS上的base64命令返回错误的结果

当使用结果邮递员并发出针对基本验证端点的请求,我拿回401

当编码username:passwordhttps://www.base64encode.org,我回来这样的结果:dXNlcm5hbWU6cGFzc3dvcmQ=,我可以成功地使用它反对从上面的基本认证端点。

如果我使用PostMan生成通过usernamepassword传递的Basic Auth头文件,它将生成与https://www.base64encode.org相同的base64编码字符串。 我也可以复制到username:passwordtestin.txt使用openssl创建的base64字符串:

openssl base64 -in testin.txt -out testout.txt回报dXNlcm5hbWU6cGFzc3dvcmQK这是相同的错误结果作为base64创建。

openssl version回报OpenSSL 0.9.8zh 14 Jan 2016

+0

Stack Overflow是用于编程和发展问题的站点。这个问题似乎与题目无关,因为它不涉及编程或开发。请参阅帮助中心的[我可以询问哪些主题](http://stackoverflow.com/help/on-topic)。也许[超级用户](http://superuser.com/)或[Unix&Linux堆栈交换](http://unix.stackexchange.com/)会是一个更好的地方。另请参阅[我在哪里发布关于Dev Ops的问题?](http://meta.stackexchange.com/q/134306) – jww

回答

0

解码dXNlcm5hbWU6cGFzc3dvcmQKusername:password\n

所以我的猜测是,在这两种情况下,你都有一个你没有料到的换行。 testin.txt的情况很容易解决(修改文件,删除换行)。

我想到的base64情况可通过使用回声-n参数,除去换行来解决:

echo -n username:password | base64 --encode 
+0

'echo username:password | base64'也返回'dXNlcm5hbWU6cGFzc3dvcmQK'。 –

+0

你是对的。忘记了你需要调用'echo -n'来摆脱换行。 –

+0

谢谢,使用'-n' –