宸道移动安全 发表于 2020-11-23 18:11

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编码和解码的例子。

IBinary 发表于 2020-11-24 15:01

哈哈 真心讲了跟没讲一样.去网上看看核心base64算法怎么讲的.原理是啥. 也算是对自己的一个学习.你现在说的就是 API的调用.人家帮你写好的. base64算法变形了请问你怎么搞.

First丶云心 发表于 2020-11-24 14:49

kraist 发表于 2020-11-24 11:03

秒啊。。。。

masker_k 发表于 2020-11-24 11:13

感谢分享

niebaohua 发表于 2020-11-24 11:51

我还以为 你要 手撸 base64 的算法呢 = =

atrox 发表于 2020-11-24 13:36

看到代码我惊了{:301_1008:}

daymissed 发表于 2020-11-24 14:07

BASE92,是啥。

传说中的五号 发表于 2020-11-24 14:33

新建了一个class,我以为要手写算法了,结果,就这...

trek 发表于 2020-11-24 15:27

大写,小写,数字,+,/还有==:lol
页: [1] 2 3 4 5 6
查看完整版本: Base64编码算法