Base64编码为什么会以=号结尾

Base64编码为什么会以=号结尾 在对报文进行base64编码后,会发现结尾会有等号,是否所有的都要以=结尾呢? 答案是否定的,=号存在的意义是为了补位,b

Base64编码为什么会以=号结尾

  • 在对报文进行base64编码后,会发现结尾会有等号,是否所有的都要以=结尾呢?
    • 答案是否定的,=号存在的意义是为了补位,base64编码后的长度需要是4个字符的倍数,如果不是4的倍数需要在结尾加上=。

Base编码数据在网络传输中+号会被转义成空格

  • 解决办法:
// 方式1:处理办法:在传输时将base64编码后的数据中+号替换成`%2B`
reqData =reqData.replaceAll("\\+",%2B);
//方式2:对Base64编码后的在进行一次URLEncoder.encode();
URLEncoder.encode(reqData, "UTF-8");