php 如何 decode JAVA base64的数据,JAVA 用的自带的base64,非apache.commons

刚对接一个数据接口,需要用 base64 进行转码。
正常转码都没问题,但这次一直对接不一致。
原因是他们 (java) 用的自带的 base64 类库,而非 apache.commons 的标准库,导致我没有办法解码出正确数据。
而他们的 post 接口已经被写成公有方法,且有其他对接方在使用,无法单独给我重写一个接口。
所以,需要我自己想办法去解码他们的数据。
奈何水平有限,着实不知道怎么解决。。
google 到一个 php-javaBridge,但我还不知道怎么用,有没有大神教一发?
感谢!

阅读 116
评论
    2 个回答
    • 3.8k

    java自带的Base64有三种编码,应该是两边用的不一致造成的
    Base64.getEncoder();+/,不换行
    Base64.getUrlEncoder();-_,不换行
    Base64.getMimeEncoder();+/,用 \n\r 换行

      求大佬帮看下,搭了一个java代理,php-javaBridge
      截图如下
      这是我的jar引入的包
      image
      这是我调用的方法
      image
      这是打印出来的解码数据
      image

      现在对接方又告诉我用的不是自带。。而是apache.commons.codec。。
      这个不是标准库吗?
      和我们php不是一致的么?
      image

      数据我也放出来了,他给我的测试数据,放出来应该没啥问题,等解决了再删掉好了。
      数据如下:
      U+RLnXbLIHg1N8CJY3sMAMz8lnuioK+J1/PkkDFeEICPCfFTCWZQ11eTA2k7igiGfn31BXqxVsBi7L1Z4UsWhlAp4+uHdXNKysUjUH+j9IqkpMf3DWNyqyqjfNkKGx81H0jFDd3qd8fj0RxR87XNQUY+b4SIx7ApNlQ6f2QaWjA=

      求大佬救救孩子吧

        撰写回答

        登录后参与交流、获取后续更新提醒