今天小编要和大家来探讨一下Android逆向学习当中的《Base64编码算法》,如果有什么不对的地方,大家多多指教!
目录
Base64编码原理
Eclipse中base64算法实现
Base编码原理
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个二进制数字,但他们不叫64.
2、Base64的使用场所
Base64的使用场所主要是用于处理文本数据的一些场合,表示数据传输,储存一些二进制数据,包括email和在xml中存储的一个复杂数据。
3、Base64的原理
Base64可以将ASCII字符串或是二进制编码只包含A-Z,a-z,0-9以及+,再加一个/总共64字符,这64个字符用bit位就可以全部表现出来,一个字节有8个bit位还剩下两个bit位,这两个bit用0来填充。
其实一个base64字符他永远是一个8个bit位,但有效部分只有右边的6个bit位,左边永远是两个0。
那么Base64的编码规则是将3个8位字节,也就是3x8=24位,编码成4个6位字节,之后在每个6字节前面,补充两个0。形成4个8字节的形成,那么取值范围就变成0-63,因为2的6次方等于64,所以6个位呢就组成一个单元。
Eclipse中base64算法实现
步骤
1、Eclipse中新建工程
2、导入base64相关的包
3、使用包里面的方法
首先我们先在eclipse建一个工程,然后我们导入base64相关的一个包,然后我们可以使用这个包里面的方法一起来完成我们的算法
我们这里已经先把工程给创建好了,我们直接在创建好的工程里面直接进行一个代码的编写,首先我们直接先输入base64。
他会提示我们一个导包,导包之后我们可以调用里面的encode。
根据提示,我们直接回车,这里就是我们要进行编码的一个数据,我们输入1101,直接使用getbyte进行一个数据的转换。
获取到一个编码的数据,我们进行一个输出,直接把这个编码数据放到这个system.out里面,在分号删掉。
我们按住快捷键ctrl+s进行一个保存,然后我们运行一下看一下编码后的一个数据。
我们既然要编码肯定是要解码的,解码我们也是要用到base64包里面一个叫encode,然后会给我提示。
这些解码数据是什么呢?这个就是我们刚才获取到的数据,我们直接点击复制进来,进行输出。
但是我们不能直接输出,因为我们知道system.out,这个输出是需要一个string类型,那我们在这里就直接NEW一个string。
保存运行出来就是之前我们所得的结果。
小编在这里给大家讲解了base64编码的原理,然后给大家图文演示了一下base64编码和解码的例子,如果有什么不懂的可以私聊我或者在下方评论,小编会第一时间给大家解答!