首页 > 其他分享 >base64相关知识(包含标准及非标准base64知识,附带转换表)

base64相关知识(包含标准及非标准base64知识,附带转换表)

时间:2022-09-30 10:33:54浏览次数:72  
标签:编码 Base64 转换 字节 字符 base64 知识 非标准

base64是用于传输8Bit字节码的编码方式之一。 Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。 Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。 解码可以编写程序进行解密,如果不懂得编程,可以使用  Base64在线编码解码工具 进行解码。   然而,标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。 为解决此问题,可采用一种用于URL的改进Base64编码,它不仅在末尾填充'='号,并将标准Base64中的“+”和“/”分别改成了“-”和“_”,这样就免去了在URL编解码和数据库存储时所要作的转换,避免了编码信息长度在此过程中的增加,并统一了数据库、表单等处对象标识符的格式。 另有一种用于正则表达式的改进Base64变种,它将“+”和“/”改成了“!”和“-”,因为“+”,“*”以及前面在IRCu中用到的“[”和“]”在正则表达式中都可能具有特殊含义。 此外还有一些变种,它们将“+/”改为“_-”或“._”(用作编程语言中的标识符名称)或“.-”(用于XML中的Nmtoken)甚至“_:”(用于XML中的Name)。  

规则

关于这个编码的规则: ①.把3个字节变成4个字节。 ②每76个字符加一个换行符。 ③.最后的结束符也要处理。  

例子1

转换前 11111111, 11111111, 11111111 (二进制) 转换后 00111111, 00111111, 00111111, 00111111 (二进制) 上面的三个字节是原文,下面的四个字节是转换后的Base64编码,其前两位均为0。 转换后,我们用一个码表来得到我们想要的字符串(也就是最终的Base64编码),这个表是这样的:(摘自RFC2045)   转换表 Table 1: The Base64 Alphabet
索引 对应字符 索引 对应字符 索引 对应字符 索引 对应字符
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    
14 O 31 f 48 w    
15 P 32 g 49 x    
16 Q 33 h 50 y    
         

标签:编码,Base64,转换,字节,字符,base64,知识,非标准
From: https://www.cnblogs.com/kingchn/p/16744070.html

相关文章

  • java知识点杂整理
    1、@RestController@RestController 相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注......
  • 知识图谱实体对齐1:基于平移(translation)的方法
    1导引在知识图谱领域,最重要的任务之一就是实体对齐[1](entityalignment,EA)。实体对齐旨在从不同的知识图谱中识别出表示同一个现实对象的实体。如下图所示,知识图谱\(\m......
  • 生存分析的统计知识小总结
    名词解释起始事件:生存分析中,反应随访开始特征的事件,如疾病确诊、某种治疗开始等,起点一般定义为调查的开始终点事件:生存分析中,反应生存研究终点的事件,如患者死亡、疾......
  • 组装电脑基础知识之中央处理器CPU
    前言本系列文章是为准备自己组装台式机的小伙伴写的关于中央处理器CPU、主板、显卡等部分的参考资料。一、简介中央处理器作为计算机系统的运算和控制核心,是信息处理、......
  • Ajax 知识点汇集
    url地址组成客户端和服务器之间的通信协议服务器名称具体的存放位置 客户端与服务器的通信过程(三个步骤):请求、处理、响应使用开发者工具->network:查看......
  • 从0开始学习Axure(三)Axure元件相关知识
    1.元件相关1.1画布操作在页面模块中,可以双击任意一个页面,打开相应的画布,在画布的上方也会出现相应的标签也可以通过拖动页面改变页面顺序等操作1.2元件操作若想使用......
  • JavaScript 语言基础知识点
    1、JavaScript数据类型2、JavaScript变量3、Javascript运算符4、JavaScript流程控制5、JavaScript函数基础6、JavaScript数组7、JavaScript字符串函数8、JavaS......
  • JavaScript ES6常用基础知识总结
    ​ES6let与const及其相关块级作用域ES6新增了块级作用域,总结一句话大致就是:大括号{}包起来的代码块基本山都可以当做块级作用域。常见的有直接使用{}包起来:{vara=4}函数......
  • 网络图片转base64
    /**        * 网络图片转base64        * @param src        * @return        * @throws Exception     ......
  • Zookeeper必知必会知识点(二)
    Zookeeper队列管理(文件系统、通知机制)两种类型的队列:1、同步队列,当一个队列的成员都聚齐时,这个队列才可用,否则一直等待所有成员到达。2、队列按照FIFO方式进行入队和......