热门文章> base64是什么 >

base64是什么

36氪企服点评小编
2022-01-13 11:10
1410次阅读
| 企服解答
 
base64是处理二进制数据的一种编码方式,可用于把二进制数据编码成64个可打印的字符。64代表的就是6位二进制数据,通过把字符串转化为二进制数据,然后按照每6位二进制数据来进行分割再把这6位二进制数据转化为10进制数,找到对应的映射表就可生成base64编码

base64是什么base64是什么

以字符串'A'为例,首先转为16进制数据为41对应的二进制数据为01000001,每6位二进制数据分割为一组结果为010000 010000,6位二进制转化为10进制的结果为16 16,base64映射对应的字符为”Q Q“,因为补了4个0所以字符串A对用的base64编码就为”QQ==“ 。

| 扩展阅读

1、base64的优点和局限

Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的一个标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码不仅比较简短,同时也具有不可读性,即所编码的数据不会被人用肉眼所直接看到。

然而,标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。

为解决此问题,可采用一种用于URL的改进Base64编码,它不仅在末尾去掉填充的'='号,并将标准Base64中的“+”和“/”分别改成了“-”和“_”,这样就免去了在URL编解码和数据库存储时所要作的转换,避免了编码信息长度在此过程中的增加,并统一了数据库、表单等处对象标识符的格式。

2、 base64的具体实现步骤

字符串转化为2进制数据;2进制数据按照每6位一组分割, 不足6位的补0;6位二进制数据转化为十进制数;在对应的base64映射表中找到对应的映射字符,补0的每两位用一个=号表示。

3、 64编码表

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

 

[免责声明]

文章标题: base64是什么

文章内容为网站编辑整理发布,仅供学习与参考,不代表本网站赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时沟通。发送邮件至36dianping@36kr.com,我们会在3个工作日内处理。

消息通知
咨询入驻
商务合作