2016-12-16 66 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' –