当前位置:网站首页 > 技术团队招聘与面试 > 正文

字符串转码技术介绍图(字符串转码技术介绍图片)



Base64是最常见的用于传输8Bit字节码的编码方式之一,它是一种基于64个可打印字符来表示二进制数据的方法。

Base64编码,是由64个字符组成编码集:26个大写字母A~Z,26个小写字母a~z,10个数字0~9,符号“+”与符号“/”。Base64编码的基本思路是将原始数据的三个字节拆分转化为四个字节,然后根据Base64的对应表,得到对应的编码数据。

当原始数据凑不够三个字节时,编码结果中会使用额外的符号“=”来表示这种情况。

Base64编码表

码值

字符

码值

字符

码值

字符

0

A

26

a

52

0

1

B

27

b

53

1

2

C

28

c

54

2

3

D

29

d

55

3

4

E

30

e

56

4

5

F

31

f

57

5

6

G

32

g

58

6

7

H

33

h

59

7

8

I

34

i

60

8

9

J

35

j

61

9

10

K

36

k

62

+

11

L

37

l

63

/

12

M

38

m

13

N

39

n

14

O

40

o

15

P

41

p

16

Q

42

q

17

R

43

r

18

S

44

s

19

T

45

t

20

U

46

u

21

V

47

v

22

W

48

w

23

X

49

x

24

Y

50

y

25

Z

51

z

Base64编码步骤

  • 将原始数据按照每三个字节作为一组进行划分,每组一共是24个二进制位。
  • 再将这24个二进制位,每6个一划分,分为四组(6×4=24个二进制位)。
  • 然后在每组前面补上00,扩展成8×4=32个二进制位,即四个字节(因为每个字节前面有2个0,所以每个字节的最大值是63)。
  • 最后根据Base64编码表,将这四个字节的码值,转换为对应的Base64的字符即可。

情况1:正常的3个字节编码

将单词“PCB”转换为Base64编码:

  • "P"、"C"、"B"的ASCII值分别是80、67、66,对应的二进制值是0101 0000、0100 0011、0100 0010,将它们连成一个24位的二进制字符串000。
  • 将这个24位的二进制字符串,每6个一组分成4组:010100、000100、001101、000010。
  • 在每组前面加两个00,扩展成32个二进制位,即四个字节:00010100、00000100、00001101、00000010。它们的十进制值分别是19、22、5、46。(最前面加上两个0只是为了凑成一个字节,实际上其本身的数值是没有变化的)
  • 根据上表,得到每个值对应Base64编码,即U、E、N、C。

情况2:剩余2个字节编码

对于2个字节(16个二进制数)的情况,比如将“PC”转换为Base64编码:

转换方法同上,区别在于:

  • 16个二进制数,每6个一组分割,最后剩余4个,这时再在后面补两个0凑成6个。
  • 然后还按照基础的方法转换,最后补一个“=”即可

转换过程如下表,最终将“PC”转换为了“UEM=”

情况3:剩余1个字节编码

对于12个字节(8个二进制数)的情况,比如将“P”转换为Base64编码:

转换方法同上,区别在于:

  • 16个二进制数,每6个一组分割,最后剩余2个,后面要再补4个0
  • 然后还按照基础的方法转换,最后补两个“=”即可

转换过程如下表,最终将“P”转换为了“UA==”

编码程序

编码的程序设计思路,就是按照上面讲解的编码过程,每3个原始字符为一组,进行编码,得到4个base64的字符。对于不够3个字符的情况,编码的base64的字符后面补上一到两个号。

代码语言:javascript

复制

 
  

解码程序

解码的程序设计思路,其实就是编码的反过程,把要解码的base64符号,每4个为一组,译码成3个字符。对于最后出现的的情况,就说明是要结束了,直接使用剩余的base64符号进行译码,然后就结束了。

代码语言:javascript

复制

 
  

测试程序

使用字符串“PCB”进行base64编码测试,然后再将编码得到的结果,进行解码测试。

代码语言:javascript

复制

 
  

输出结果如下,可以看出,“PCB”进行base64编码,得到了“UENC”,然后再反向解码,又得到了“PCB”

代码语言:javascript

复制

 
  

到此这篇字符串转码技术介绍图(字符串转码技术介绍图片)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • xpac客服(xps客服电话技术支持)2025-06-14 20:09:07
  • max31855中文手册(max3232eeue中文技术手册)2025-06-14 20:09:07
  • ceph存储(ceph存储面试题)2025-06-14 20:09:07
  • 路由守卫面试题(路由守卫三个参数)2025-06-14 20:09:07
  • max3232eeue中文技术手册(max3232cse中文资料)2025-06-14 20:09:07
  • 电力104协议招聘(电力招聘2021)2025-06-14 20:09:07
  • 存储过程面试常见问题(存储过程的面试题)2025-06-14 20:09:07
  • jvm的内存结构 面试(jvm内存结构面试题)2025-06-14 20:09:07
  • 存储过程面试常见问题(存储过程笔试题)2025-06-14 20:09:07
  • 浏览器兼容性面试题(浏览器兼容性问题面试题)2025-06-14 20:09:07
  • 全屏图片