4

真的很困惑-猜猜它与最后的单个字符位置有关,或者可能与我不知道的基本摘要完成的填充有关..?

所以,如果我执行这个,你可以看到 base64 编码的产品:

echo 'host@mail.com:password' | openssl enc -base64
aG9zdEBtYWlsLmNvbTpwYXNzd29yZAo=

现在,如果我提出 curl 请求:

curl -v -u host@mail.com:password https://
aG9zdEBtYWlsLmNvbTpwYXNzd29yZA==

您会注意到 base64 字符串不一样..哈哈什么?base64 命令行一实际上是不正确的 - 如果您在请求中替换它,它会失败。SO - 基本摘要没有真正使用base64字符串吗?我注意到总是在字符串末尾执行 ao= 而不是 == ...

和想法?

编辑:所以,它是来自 echo 的尾随换行符:-n 不输出尾随换行符

谢谢!

4

1 回答 1

7
>>> 'aG9zdEBtYWlsLmNvbTpwYXNzd29yZA=='.decode('base64')
'host@mail.com:password'
>>> 'aG9zdEBtYWlsLmNvbTpwYXNzd29yZAo='.decode('base64')
'host@mail.com:password\n'

试试echo -n吧。

于 2010-01-23T04:27:54.523 回答