常见加密算法之Base64编码算法

166 阅读3分钟

往期回顾

ARM汇编语言程序结构

Xposed框架安装、使用及插件开发

史上最详细CydiaSubstrate框架

Android Apk 360加固方法步骤

一: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个位 组成一个单元。

二:Eclipse中Base64算法实现

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

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

使用里面的方法encode,然后对1101字符进行编码,并且输出:

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

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

总结

1、介绍base64的编码原理。

2、演示base64编码和解码的例子。

如果你也对安卓逆向感兴趣,请添加联系方式,也可以扫描如下二维码,或者微信搜索【宸道移动安全团队】,关注有惊喜哦!

qq:3543756281

vx:Yjxiaox