Java实现Base64编码以及原理详解

Java实现

使用java.util.Base64类来实现Base64编码。

该类是Java8引入的。

String str = "sd";
System.out.println("str:" + str);

// 进行Base64编码
byte[] bytes = str.getBytes("utf-8");
String encode = Base64.getEncoder().encodeToString(bytes);
System.out.println("encode:" + encode);

// 进行Base64解码
byte[] bytes1 = Base64.getDecoder().decode(encode);
String decode = new String(bytes1, "utf-8");
System.out.println("decode:" + decode);
输出:

str:sd
encode:c2Q=
decode:sd

上面就是java实现的代码,使用起来是很方便的。下面来说说Base64编码的原理。

Base64编码

Base64编码的作用:将字符串转为由64个特定字符组成的编码,这种编码方式适用于不支持特定编码的情况。

详解

一、

首先来看,原字符串是“sd”。将字符串转为二进制编码形式。这里是采用utf-8。

s的编码:115。二进制展示是:01110011。

d的编码:100。二进制展示是:01100100。

上面的二进制是8个字节的,由于要转换为64个字符展示的字符串,所以需要以6个字节作为一个单位来展示。

我们将两个编码合并起来:0111001101100100

二、

由于现在是16个字节(8+8),如果以6个字节为单位的话,字节数量是不够的。

因此在后面补0:011100110110010000

三、

然后以6个字节为单位分割该编码:011100,110110,010000

再转换为十进制表示:28,54,16

四、

根据下面表格,找到索引对应的字符,得到Base64编码的结果:c2Q

--图片来源base64百度百科

五、

通常,编码结果不满4个字符时,会在后面补上=

因此编码的最终结果是:c2Q=

既然编码方式知道了,那么解码方式也就知道了。这里就不详细再说了。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值