PHP-不同内容base64解码一样

PHP-不同内容base64解码一样
echo base64_decode('ZEVWSGRGWldlbEIwVm5WRn========');后面加N个==也一样的解码?
echo base64_decode('ZEVWSGRGWldlbEIwVm5WRn');
echo base64_decode('ZEVWSGRGWldlbEIwVm5WRg');
ZEVWSGRGWldlbEIwVm5WRn与ZEVWSGRGWldlbEIwVm5WRg不一样,为什么PHP的base64_decode解码却一样?
都是 dEVHdFZWelB0VnVF
为什么会这样?是PHP版本(5.5.25)的原因?
但用JS的话解码出来就不一样了!

阅读 3.8k
2 个回答

base64编码是用4个6位, 表示3个8位,

你举的这两个例子按4个字母一分组, 最后是 Rg, Rn

在base64里面, R = 17(10进制), 0b010001(二进制), g = 32, 100000, n = 39, 100111

而chr(0b01000110) == 'F'

因为后面的组不全8位, 所以被忽略了.

Rg, Rh, Ri, ...通通表示字母F

php 的 base64_decode 会忽略字符串尾部的 =.

javascript 标准库里没有 base64 相关的操作,不知道你用的是什么库,这要看具体的实现。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题