`
sd4886656
  • 浏览: 89962 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Base64编码

 
阅读更多

顾名思义:

所谓Base64,就是说选出64个字符——小写字母a-z、大写字母A-Z、数字0-9、符号“+”、“/”(再加上作为垫字的“=”,实际上是65个字符)——作为一个基本字符集。然后,其他所有符号都转换成这个字符集中的字符。



意义:

1.由于某些系统中只能使用ASCII字符。Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法。而且base64特别适合在http,mime协议下快速传输数据。

2.简单的加密功能。base64其实不是安全领域下的加密解密算法。虽然有时候经常看到所谓的base64加密解密。其实base64只能算是一个编码算法,对数据内容进行编码来适合传输。虽然base64编码过后原文也变成不能看到的字符格式,但是这种方式很初级,很简单。

 

规则:

 

  • 第一步,将每三个字节作为一组,一共是24个二进制位。
  • 第二步,将这24个二进制位分为四组,每个组有6个二进制位。
  • 第三步,在每组前面加两个00,扩展成32个二进制位,即四个字节。
  • 第四步,根据下表,得到扩展后的每个字节的对应符号,这就是Base64的编码值。

 

 

举一个具体的实例,演示英语单词Man如何转成Base64编码。

 

Text content M a n
ASCII 77 97 110
Bit pattern 0 1 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0
Index 19 22 5 46
Base64-Encoded T W F u

 

 

 

 

 

解释
第一步,“M”、“a”、“n”的ASCII值分别是77、97、110,对应的二进制值是01001101、01100001、01101110,将它们连成一个24位的二进制字符串010011010110000101101110。
第二步,将这个24位的二进制字符串分成4组,每组6个二进制位:010011、010110、000101、101110。
第三步,在每组前面加两个00,扩展成32个二进制位,即四个字节:00010011、00010110、00000101、00101110。它们的十进制值分别是19、22、5、46。
第四步,根据上表,得到每个值对应Base64编码,即T、W、F、u。

 

 

如果字节数不足三,则这样处理:

a)二个字节的情况:将这二个字节的一共16个二进制位,按照上面的规则,转成三组,最后一组除了前面加两个0以外,后面也要加两个0。这样得到一个三位的Base64编码,再在末尾补上一个“=”号。

比如,“Ma”这个字符串是两个字节,可以转化成三组00010011、00010110、00010000以后,对应Base64值分别为T、W、E,再补上一个“=”号,因此“Ma”的Base64编码就是TWE=。

b)一个字节的情况:将这一个字节的8个二进制位,按照上面的规则转成二组,最后一组除了前面加二个0以外,后面再加4个0。这样得到一个二位的Base64编码,再在末尾补上两个“=”号。

比如,“M”这个字母是一个字节,可以转化为二组00010011、00010000,对应的Base64值分别为T、Q,再补上二个“=”号,因此“M”的Base64编码就是TQ==。

转换表:

 

索引 对应字符 索引 对应字符 索引 对应字符 索引 对应字符
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
分享到:
评论

相关推荐

    labview 图片缩放 base64编码base64解码

    在这个特定的场景中,我们关注的是如何在LabVIEW中处理图片,包括图片的缩放、Base64编码和解码。 1. **图片缩放**: 在LabVIEW中,你可以使用图像处理库来实现图片的缩放功能。这个库提供了各种图像操作函数,...

    易语言汇编base64编码

    1. **Base64解析**:接收Base64编码的字符串,根据Base64字符集将每个字符转换回6位的二进制数。 2. **组合二进制数据**:将4个6位的二进制数组合成3个8位的字节,注意需要处理末尾的填充字符"="。 3. **数据恢复*...

    Base64编码解码工具

    Base64编码基于64个字符的字符集,这个字符集包括26个小写字母、26个大写字母、10个数字以及两个特殊字符“+”和“/”。每个64个字符代表一个6位的二进制数,这意味着每个64字符可以表示2^6 = 64种不同的值。由于...

    Base64编码解码工具成品+源码

    Base64编码是一种在网络上传输二进制数据的文本编码方式,主要应用于电子邮件、网页编码等领域,确保数据在传输过程中的安全性和可读性。它将任意二进制数据转换成可打印的ASCII字符,避免了非ASCII字符在传输过程中...

    文件转换为Base64编码

    Base64编码是一种在互联网上常见的数据编码方式,主要用于在不支持二进制传输的环境(如邮件系统)中传输二进制数据。它将任意的二进制数据转化为可打印的ASCII字符序列,以便在文本格式下进行传输和存储。这种编码...

    C语言base64编码解码库

    在IT领域,Base64是一种常见的编码方式,用于将二进制数据转化为可以在电子邮件系统、文本文件等中安全传输的ASCII字符串。C语言是编程语言的基础,被广泛应用于系统编程和嵌入式开发,因此一个C语言实现的Base64...

    Base64编码解码工具V1.5

    在Base64编码中,每个3个字节的二进制数据块会被转换为4个Base64字符。 Base64编码的主要原理是将每3个8位字节(24位)的数据分成4个6位组(每个6位可以表示0-63的十进制数),然后将这些数值映射到Base64字符集中...

    java和js相互base64编码解码

    在IT行业中,Base64是一种常见的数据编码方式,它将任意二进制数据转换为可打印的ASCII字符,常用于在网络上传输包含非ASCII字符的数据,如图片或PDF等。在Java和JavaScript中,Base64编码和解码是两个重要的功能,...

    易语言 base64编码转图片 如何 提高转换速度.zip

    在IT行业中,Base64编码是一种常见的数据编码方式,它将二进制数据转化为可打印的ASCII字符,常用于在网络上传输图片、音频或视频等非文本数据。易语言作为一款中国本土化的编程语言,提供了处理Base64编码的功能。...

    js 显示base64编码的二进制流网页图片

    Base64编码是一种编码方法,它将二进制数据转换为ASCII字符串格式。这种编码方式主要适用于编码那些无法直接通过文本格式传输的数据,比如图片、音频、视频等二进制文件。Base64编码通过把每3个字节的二进制数据转换...

    base64编码解码离线工具

    Base64编码是一种在网络上传输二进制数据时常用的编码方式,它将任意二进制数据转换成可打印的ASCII字符序列。这种编码方法最初是为了在电子邮件系统中传输非ASCII字符而设计的,如今在很多场景下都有应用,如图片...

    Base64编码jar包

    注意,虽然这里介绍的是`javabase64-1.3.1.jar`库,但Java 8及更高版本已经内置了`java.util.Base64`类,提供了一套标准的Base64编码和解码接口,因此你也可以选择使用Java自带的API,具体用法类似。 总的来说,...

    Base64系列第四篇 C/C++中使用Base64编码解码(从chromium库中抽取)

    本篇将深入探讨如何在C/C++环境中,利用从Chromium库中提取的代码进行Base64的编码与解码。 首先,Base64编码的原理是将每3个字节(24位)的数据转换为4个6位的字符,然后将这4个6位字符对应到Base64的字符集(包括...

    BASE64编码方法

    **BASE64编码方法** BASE64是一种广泛用于网络数据传输和存储的编码方式,它将任意二进制数据转换成可打印的ASCII字符序列。这种方法最初被设计用来在电子邮件系统中传输非ASCII字符,现在则被应用于各种场景,如在...

    base64 编码与解码 中文完美支持

    Base64编码的过程是这样的:首先,将二进制数据按每3个字节分为一组(24位),然后将这24位数据转换成4个6位的二进制数,每个6位对应Base64字符集中的一位。因为6位最多能表示64种状态,所以正好可以对应64个不同的...

    QT图片BAse64编码与解码

    QT图片Base64编码与解码是C++编程中一种常见的技术,特别是在处理网络传输或者存储图片数据时。Base64是一种将二进制数据转换为可打印ASCII字符的编码方式,它通过特定的算法将每3个字节的数据转换为4个ASCII字符,...

    Base64编码和解码的应用(前后端程序)

    Base64编码是一种将二进制数据转换为可打印ASCII字符的编码方式,常用于在网络上传输非ASCII字符,如图片或PDF等。在前端开发中,Base64编码经常被用于将图片转换为字符串,以便嵌入到HTML或者CSS中。在后端,Base64...

    c++ base64 编码

    在IT领域,Base64是一种用于在网络上传输和存储非ASCII字符的数据编码方式。它将任意二进制数据转换为可打印的ASCII字符序列,主要应用于电子邮件、HTTP传输以及XML文档中。C++作为一门通用的编程语言,也支持Base64...

    将图片进行Base64编码后传输

    "将图片进行Base64编码后传输"是一种高效且便捷的方式,它允许我们直接将图片数据嵌入到文本格式中,方便在网络中传递。这种技术广泛应用于JSON API、HTML页面以及任何不支持二进制数据流的系统。 Base64是一种编码...

    js对图片base64编码字符串进行解码并输出图像示例

    需要注意的是,这段代码没有提供完整的Base64解码逻辑,实际的`decodeBase64`函数需要实现Base64编码的解码算法,这通常涉及到将Base64字符映射回它们代表的二进制值。 总的来说,这个示例展示了JavaScript在处理二...

Global site tag (gtag.js) - Google Analytics