Why is command line computed base64 string different than curl computed base64 string?
真的很困惑 - 猜猜它与最后的单个字符位置有关,或者可能与我不知道的基本摘要完成的填充有关..?
所以,如果我执行这个,你可以看到base64编码的产物:
1 2 | echo '[email protected]:password' | openssl enc -base64 aG9zdEBtYWlsLmNvbTpwYXNzd29yZAo= |
现在,如果我发出 curl 请求:
1 2 | curl -v -u [email protected]:password https:// aG9zdEBtYWlsLmNvbTpwYXNzd29yZA== |
你会注意到 base64 字符串不一样..哈哈什么? base64 命令行一实际上是不正确的 - 如果您在请求中替换它,它会失败。 SO - 基本摘要没有真正使用base64字符串吗?我注意到在字符串的末尾总是做一个 o= 而不是 == ...
还有什么想法?
编辑:所以,它是来自 echo 的尾随换行符:
-n 不输出尾随换行符
谢谢!
1 2 3 4 5 | >>> 'aG9zdEBtYWlsLmNvbTpwYXNzd29yZA=='.decode('base64') '[email protected]:password' >>> 'aG9zdEBtYWlsLmNvbTpwYXNzd29yZAo='.decode('base64') '[email protected]:password\ ' |
试试