首页
社区
课程
招聘
[分享]Base64编码算法
发表于: 2020-8-7 18:09 1748

[分享]Base64编码算法

2020-8-7 18:09
1748

1、Base64编码的原理

 

(1)Base64是什么
Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。三个字节有24个比特,对应于4个Base64单元,即3个字节需要用4个可打印字符来 表示。它可用来作为电子邮件的传输编码。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。一些如uuencode的其他编码方法,和之后binhex的版本使用不同的64字符集来代表6个二进制数字,但是它们不叫Base64。

 

(2)Base64的使用场所
Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数 据。包括MIME的email、在XML中存储复杂数据。

 

(3)Base64的原理
Base64可以将ASCII字符串或者是二进制编码成只包含A—Z,a—z,0—9,+, / 这64个字符( 26个大写字母,26个小写字母,10个数字,1个+,一个 / 刚好64个字符)。这64个字符用6个bit位就可以全部表示出来,一个字节 有8个bit 位,那么还剩下两个bit位,这两个bit位用0来补充。其实,一 个Base64字符仍然是8个bit位,但是有效部分只有右边的6个 bit,左边 两个永远是0。

 

Base64的编码规则是将3个8位字节(3×8=24位)编码成4个6位的字节(4×6=24位),之后在每个6位字节前面,补充两个0,形成4个8位字节的形式,那么取值范围就变成了0~63。又因为2的6次方等于64,所以每6个位组成一个单元。

 

2、Eclipse中Base64算法实现

 

首先新建一个工程,添加主程序

 

 

使用jdk中给我们提供的包,直接输入Base64,会给我们导包:

 


使用jdk中给我们提供的包,直接输入Base64,会给我们导包:

 

 

继续使用decode方法对编码的结果进行解码输出:

 

 

注意,这里decode的返回值是byte[]字节数组,所以需要new String
进行类型转换。

 

本课小结
1、介绍base64的编码原理。
2、演示base64编码和解码的例子


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//