我正在尝试在base64中编码令牌以用作身份验证令牌。但是,base64_encode
似乎没有提供正确的值。
$encode = base64_encode("$this->access_token:");
var_dump("$this->access_token:");
var_dump($encode);
结果
string(31) "YfJF3NHGZbVUeWTVv-KtdQYV8Bwsal:"
string(44) "WWZKRjNOSEdaYlZVZVdUVnYtS3RkUVlWOEJ3c2FsOg=="
如果我在命令行上运行此命令,它会为我提供与api
一起使用的正确令牌openssl base64 <<< YfJF3NHGZbVUeWTVv-KtdQYV8Bwsal:
WWZKRjNOSEdaYlZVZVdUVnYtS3RkUVlWOEJ3c2FsOgo=
WWZKRjNOSEdaYlZVZVdUVnYtS3RkUVlWOEJ3c2FsOg== (php result for comparison)
另一个例子
EIiLMhGNib9JNH2ob62JpsoQoVNRdltc: (access token)
RUlpTE1oR05pYjlKTkgyb2I2Mkpwc29Rb1ZOUmRsdGM6Cg== (openssl)
RUlpTE1oR05pYjlKTkgyb2I2Mkpwc29Rb1ZOUmRsdGM6 (php)
答案 0 :(得分:1)
我明白了。您的openssl
考虑到最后的换行符。你的PHP代码很好,你应该只使用它。
实际上:
EIiLMhGNib9JNH2ob62JpsoQoVNRdltc:
<newline>
转换为您在openssl中看到的内容,EIiLMhGNib9JNH2ob62JpsoQoVNRdltc:
转换为您在PHP中看到的内容。