`

Base64 编码 规则

阅读更多

Base64编码要求把3个8位字节(3*8=24) 转化为4个6位的字节(4*6=24) ,之后在6位的前面补两个0 ,形成8位一个字节的形式。 


例如字符串“张3” :
11010101 11000101 00110011 
转换后:
00110101 00011100 00010100 00110011 
用十进制表示即为:53 34 20 51 


这个并不是最终的结果,还需要根据Base64的编码表查询出转换后 的值。

下面就是BASE64编码表:
Table 1: The Base64 Alphabet 
Value Encoding Value Encoding Value Encoding Value Encoding 
0 A 17 R 34 i 51 z 
1 B 18 S 35 j 52 0 
2 C 19 T 36 k 53 1 
3 D 20 U 37 l 54 2 
4 E 21 V 38 m 55 3 
5 F 22 W 39 n 56 4 
6 G 23 X 40 o 57 5 
7 H 24 Y 41 p 58 6 
8 I 25 Z 42 q 59 7 
9 J 26 a 43 r 60 8 
10 K 27 b 44 s 61 9 
11 L 28 c 45 t 62 + 
12 M 29 d 46 u 63 / 
13 N 30 e 47 v (pad) = 
14 O 31 f 48 w 
15 P 32 g 49 x 
16 Q 33 h 50 y 

以上一共是64个编码,这也是Base64名称的由来,编码的编号对应的是得出的新字节的十进制值

因此,上例中字符串“张3”经过编码后就成了字符串“1iUz”了。 

当代码量不是3的整数倍时 ,代码量/3的余数自然就是2或者1。

转换的时候,结果不够6位的用0来补上相应的位置,之后再在6位的前面补两个0。转换完空出的结果就用就用“=”来补位。譬如结果若最后余下的为2个字节的“张”: 
字符串“张” 
11010101 HEX:D5 11000101 HEX:C5 

00110101 00011100 00010100 
十进制53 十进制34 十进制20 pad 
字符’1’ 字符’i’ 字符’U’ 字符’=’ 

这样,最后的2个字节被整理成了“1iU=”。

 
同理,若原代码只剩下一个字节,那么将会添加两个“=”

只有这两种情况,所以,Base64的编码最多会在编码结尾有两个“=”

完~

 

原文:

http://blog.csdn.net/SCHOLAR_II/archive/2009/02/11/3877606.aspx

 

分享到:
评论

相关推荐

    BASE64编码规则.doc

    BASE64编码规则

    Base64编码规则

    NULL 博文链接:https://thingkau.iteye.com/blog/555813

    BASE64编码规则.pdf

    BASE64编码规则 及在java C# VB 中的代码实现

    base64编码实现

    base64编码规则的java实现.Provides encoding of raw bytes to base64-encoded characters, and decoding of base64 characters to raw bytes.

    base64编码解码用于pb8pb9pb12.5等

    标注base64编码方式 Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。 关于这个编码的规则...

    Base64编码介绍

    Base64 编码详细介绍,包裹原理,编码规则。

    python base64编码解码详细笔记

    python中base64编码解码模块的使用笔记, 超级详细. 语法规划, 应用举例. 原理说明.

    C# Base64编码

    Base64的编码规则 Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码。它将需要编码的数据拆分成字节数组。以3个字节为一组。按顺序排列24 位数据,再把这24位数据分成4组,即每组6位。再在每组的...

    C# Base64编码函数

    Base64的编码规则 Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码。它将需要编码的数据拆分成字节数组。以3个字节为一组。按顺序排列24 位数据,再把这24位数据分成4组,即每组6位。再在每组的...

    base64位API(C++版本)

    Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码是从二进制到字符的过程,可用于在...

    Base64加密算法java版

    Base64加密算法java版

    base64_substring:生成Yara规则以查找包含特定关键字的base64编码文件

    base64_substring可以通过枚举给定搜索词的所有可能的base64编码并生成检查这些可能性的yara规则来帮助他们。 怎么跑 示例:生成与包含Application术语的base64编码文件匹配的yara规则。 > python generate_yara_...

    php base64 编码与解码实例代码

    php base64 编码与解码详解 1.自定义规则方式编码和解码 实例 public function test_changinttoStr () { $intvalue1 = 1232344234; $intStr = ''; $str = "Y 9 L F k g y 5 R o v i x I 1 a O f 8 U h d s 3 r ...

    Protocol Buffers协议编码规则

    它是以Base 128 Varints编码基础, varints是一种将一个整数序列化为一个或者多个Bytes的方法,越小的整数,使用的Bytes越少。 基本规则 1.每个Byte的最高位(msb)是标志位,如果该位为1,表示该Byte后面还有其它Byte...

    阿里云API、SDK对接工具类

    阿里云API、SDK对接工具类,可点播服务接入区域,生成视频点播OpenAPI公共参数,获取CQS。按照Base64 编码规则把 HMAC 值编码成字符串。生成随机数得到签名值(Signature)。

    unicode/UCS/UTF-8/Base64/ANSI等编码介绍

    各种编码规则及用法介绍,便于开发人员对其概念的理解。

    delphi压缩后并使用http协议base64上传下载6G超大文件的演示即核心代码概要.mp4

    知识点:1、Delphi自带的...3、Base64编码的规则;4、为何要分块断点续传,并使用TFileStream文件流替代内存流TMemoryStream;5、Buffer.size对Base64分块断点续传的影响;6、优化上传下载的速度与并发性能的综合考虑

    JavaScript中关于base64的一些事

    base64 其实是一种编码转换方式, 将 ASCII 字符转换成普通文本, 是网络上最常见的用于传输8Bit字节代码的编码方式之一。 base64 由字母 a-z 、 A-Z 、 0-9 以及 + 和 / , 再加上作为垫字的 = , 一共65字符组成一个...

    Encrypt.7z

    加解解密Demo、WinForm、C# 2017 选择加密辅助向量:无、有(两种方式),输入秘钥和加密前字符, 按加密按钮查看加密后字符,按解密按钮恢复加密前字符 基于向量的AES加密解密方法,...5、 AES加密结果使用base64编码

    医疗保障信息平台定点医药机构接口接入说明

    使用各自语言对应的SM2签名函数,对input字段使用私钥进行SM2签名后,再将字节码进行Base64编码,即是签名结果,并将签名结果赋值到cainfo字段,如签名结果。(输出参数output字段与输入的签名方法相同) 签名结果...

Global site tag (gtag.js) - Google Analytics