php的base64加密,怎么调整才能和java的base64的加密结果一致呢? 10
情况是这样的。我这边是用php开发,对方用java,我这边加密后的密文和他们的不一致。现在就是想我这边作出修改让密文一致,对方不用变动。...
情况是这样的。我这边是用php开发,对方用java,我这边加密后的密文和他们的不一致。现在就是想我这边作出修改让密文一致,对方不用变动。
展开
4个回答
展开全部
phpbase64以后每76个字符加一个换行,
function javaBase64Encode($str)
{
$str = base64_encode($str);
$strLength = strlen($str);
$n = intval($strLength / 76);
if ($n <= 0) {
return $str;
}
for ($i = 1; $i <= $n; $i++) {
$position = 76 * $i + ($i - 1);
$str = substr_replace($str, PHP_EOL, $position, 0);
}
return $str;
}
function javaBase64Decode($str)
{
$strLength = strlen($str);
$n = intval($strLength / 76);
if ($n <= 0) {
return $str;
}
for ($i = $n; $i >= 1; $i--) {
$position = 76 * $i + ($i - 1);
$str = substr_replace($str, "", $position, 1);
}
return base64_decode($str);
}
或者使用chunk_split 函数也可以,默认就是76,而且不是所有的java代码都需要这样转,要看java调用的是什么类库,有一些是不用的
function javaBase64Encode($str)
{
$str = base64_encode($str);
$strLength = strlen($str);
$n = intval($strLength / 76);
if ($n <= 0) {
return $str;
}
for ($i = 1; $i <= $n; $i++) {
$position = 76 * $i + ($i - 1);
$str = substr_replace($str, PHP_EOL, $position, 0);
}
return $str;
}
function javaBase64Decode($str)
{
$strLength = strlen($str);
$n = intval($strLength / 76);
if ($n <= 0) {
return $str;
}
for ($i = $n; $i >= 1; $i--) {
$position = 76 * $i + ($i - 1);
$str = substr_replace($str, "", $position, 1);
}
return base64_decode($str);
}
或者使用chunk_split 函数也可以,默认就是76,而且不是所有的java代码都需要这样转,要看java调用的是什么类库,有一些是不用的
展开全部
您好,我也遇到了同样的问题,还请大神指教
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
追问
不是要java的。我这边是用php开发,对方用java,我这边加密的结果不一致。现在就是想我这边作出修改让结果一致,对方不用变动。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好,请问题解决了吗?我现在遇到了相同的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询