PHP中的Java新Base64(-1)?

时间:2011-04-27 13:00:00

标签: java php base64

我试图在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

src:https://gist.github.com/944269

1 个答案:

答案 0 :(得分:0)

我在CSharp和Java之间遇到了这个问题,发现URL编码事情是罪魁祸首。我在我的工作中所做的基本上是用新生成的公钥重新加密数据,直到我得到一个不需要URL编码的数据。这不是一个很好的解决方案,但它确实有效,平均有2次尝试才能做到正确,但我已经看到它需要多达15次尝试才能做到这一点,无论哪种方式,我们仍在谈论毫秒,并且它可靠地工作。

YMMV