最近在业务场景中,需要对第三方传递进来的字符进行base64解密,根据第三方文档提供的解析工具,对数据进行了解析,关于Base64的解析方式如下:
String sign = "xxxxxxxxxxxxxxxxxxxxxxxx"; sun.misc.BASE64Decoder decode = new sun.misc.BASE64Decoder(); String json = new String(decode.decodeBuffer(sign));
使用sun.misc.BASE64Decoder对数据解析,放测试环境测试发现解析出来的字符串正确无误,
但是在上线之后,根据第三方传递的sign,解析出来之后发现字符串最后多了一个字符 “7”,查询逻辑 没有发现问题,最后猜测是sun.misc.BASE64Decoder出了问题,于是换了Base64的解析jira,使用如下代码解析:
String sign = "xxxxxxxxxxxxxxxxxxxxxxxxx"; Base64 base64 = new Base64(); String json = new String (base64.decodeBase64(sign.getBytes()));
发现返回json中数据正常,问题解决。