ASCII 是用128(2的8次方)个字符,对二进制数据进行编码的方式
base64编码是用64(2的6次方)个字符,对二进制数据进行编码的方式
base32就是用32(2的5次方)个字符,对二进制数据进行编码的方式
base16就是用16(2的4次方)个字符,对二进制数据进行编码的方式
1.Base64简介
Base64是一种基于64个可打印字符来表示二进制数据的表示方法。base64编码一般有下面两个用途:
a)所有的二进制文件,都可以因此转化为可打印的文本编码(都变成ASCII码可打印字符),使用文本软件进行编辑;
b)能够对文本进行简单的加密。
说白了,一段由0和1组成的串或文件,都能按照base64的编码规则转换成一段由64个字符任意组合的串。
2.Base64编码规则
所谓Base64,就是说选出64个字符----小写字母a-z、大写字母A-Z、数字0-9、符号"+"、"/"(再加上作为垫字的"=",实际上是65个字符)----作为一个基本字符集。然后,其他所有符号都转换成这个字符集中的字符。
具体来说,转换方式可以分为四步:
第一步,将每三个字节作为一组,一共是24个二进制位
第二步,将这24个二进制位分为四组,每个组有6个二进制位
第三步,在每组前面加两个00,扩展成32个二进制位,即四个字节
第四步,根据下表,得到扩展后的每个字节的对应符号,这就是Base64的编码值
备注:
(1)Base64将三个字节转化成四个字节,因此Base64编码后的文本,会比原文本大出三分之一左右
(2)对于不满3个字节的东东,就需要加上base64编码中的垫字符来补充
(3)Base64编码是可逆的,所以有Base64编码encode和解码decode
(4)Base64主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输(因为一些二进制字符在传输协议中属于控制字符,不能直接传送)。另外,还有一些系统中只能使用ASCII字符。Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法。base64其实不是安全领域下的加密解密算法。虽然有时候经常看到所谓的base64加密解密。其实base64只能算是一个编码算法,对数据内容进行编码来适合传输。虽然base64编码过后原文也变成不能看到的字符格式,但是这种方式很初级,很简单。
4.Base32和Base16
在Base家族中还有Base32和Base16,其实Base32/Base16和Base64目的是一样的,只是具体的编码规则的不一样罢了。Base32编码将二进制文件转换成由32个ASCII字符组成的文本;Base16编码则将二进制文件转换成由16个字符组成的文本
总结:以后见到有一串固定的字符串,和‘=’以及算法中有rol eax ,5等字样要想起来这个是base32的算法。
jie’ti’fang’sh