我试图在php中匹配java base64代码。但结果不一致。
Java base64编码
encMessage = URLEncoder.encode(new Base64(-1).encodeToString(encrypted),"UTF8");
Java解码
message = URLDecoder.decode(message,"utf8");
上面的代码java编码代码返回我必须在php中解码和解密的字符串
PHP base64解码
$message = utf8_decode(urldecode($encrypted));
$message = base64_decode($message);
PHP编码
$encMessage = base64_encode($encrypted);
$encMessage = utf8_encode(urlencode($encMessage));
结果: 的java:
KO%2F%2B%2Bzbp5z8oCdvZn62jb72kseT%2Bem8hYUZY0IuB9zo%3D
PHP:
KO%2F%2B%2Bzbp5z8oCdvZn62jb3CVVVXsV%2Bws2kDOmKK%2BPEc%3D
答案 0 :(得分:0)
我在CSharp和Java之间遇到了这个问题,发现URL编码事情是罪魁祸首。我在我的工作中所做的基本上是用新生成的公钥重新加密数据,直到我得到一个不需要URL编码的数据。这不是一个很好的解决方案,但它确实有效,平均有2次尝试才能做到正确,但我已经看到它需要多达15次尝试才能做到这一点,无论哪种方式,我们仍在谈论毫秒,并且它可靠地工作。
YMMV