Base64编码算法
一: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编码和解码的例子。
哈哈 真心讲了跟没讲一样.去网上看看核心base64算法怎么讲的.原理是啥. 也算是对自己的一个学习.你现在说的就是 API的调用.人家帮你写好的. base64算法变形了请问你怎么搞. 秒啊。。。。 感谢分享 我还以为 你要 手撸 base64 的算法呢 = = 看到代码我惊了{:301_1008:} BASE92,是啥。 新建了一个class,我以为要手写算法了,结果,就这... 大写,小写,数字,+,/还有==:lol