springboot base64_base64转码

2022年6月19日13:15:40

注意事项:

  • 标准base64是一种编码转换,不是加密方法,过程可逆;
  • 标准base64的64个可打印字符由52个大小写英文字母和10个数字(0-9)以及 / 和 + 组成;
  • base64为了方便把含有不可见字符串的信息用可见字符串表示出来;

代码如下:

import

运行结果:

编码后

java8可以直接使用Base64,转换原理如下:

  1. 将二进制数据每三个字节分为一组,每个字节占8bit,那么共有24个二进制位。
  2. 将上面的24个二进制位每6个一组,共分为4组。
  3. 在每组前添加2个0,每组由6个变为8个二进制位,总共32个二进制位,也就是四个字节。
  4. 根据base64编码对照表将每个字节转化成对应的可打印字符

转化实例如下图:

springboot base64_base64转码

标准base64的64个可打印字符由52个大小写英文字母和10个数字(0-9)以及 / 和 + 组成,编码对照表如下:

springboot base64_base64转码

base64是将二进制每三个字节转为4个字节,会有不足三个字节的情况,处理如下:

  1. 两个字节:两个字节共16个二进制位,依旧按照规则进行分组。此时总共16个二进制位,每6个一组,则第三组缺少2位,用0补齐,得到三个Base64编码,第四组完全没有数据则用“=”补上。因此,如下图中“BC”转换之后为“QKM=”;
  2. 一个字节:一个字节共8个二进制位,依旧按照规则进行分组。此时共8个二进制位,每6个一组,则第二组缺少4位,用0补齐,得到两个Base64编码,而后面两组没有对应数据,都用“=”补上。因此,如下图中“A”转换之后为“QQ==”
springboot base64_base64转码

参考连接:base64编码 - 豁然高 - 博客园

  • 作者:weixin_39564831
  • 原文链接:https://blog.csdn.net/weixin_39564831/article/details/110186356
    更新时间:2022年6月19日13:15:40 ,共 639 字。