ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

一个案例让你彻底搞懂base64编码过程

2021-04-23 21:05:39  阅读:222  来源: 互联网

标签:编码 字符 二进制 base64 码值 搞懂 ASCII 对应


简介:Base64就是一种基于64个可打印字符来表示二进制数据的编码方法。为什么不直接用ASCII码呢?因为我们输入的字符可能有ASCII码中不可见的字符,为了完全可见,就用了base64编码。

比如Hello这个单词,我们把它变成base64编码怎么做呢?

首先引入ASCII对照表:

2.一个字节是8个比特,先找到对应的ASCII码,再将其转化为8位的二进制,转化如下:

H 对应码值为72,它对应的二进制是 01001000

e对应码值为101,它对应的二进制是:01100101

l对应码值为108,它对应的二进制是:01101100

l对应码值为108,它对应的二进制是:01101100

o对应码值为111,它对应的二进制是:01101111

base64的码值是0-63,所以用6位的二进制就可以完全表示base64的码值(如:000000对应十进制0,111111对应的十进制为63),将上面8位一组的二进制变成6位一组的二进制,由于上面是5*8=40个二进制,不能被6整除,所以要加一组0将其变成48个二进制数(如果还是不能整除,还要继续补8个0,其实就是最小公倍数的倍数)。

原来:01001000 01100101 01101100 01101100 01101111 00000000

现在:010010 000110 010101 101100 011011 000110 111100 000000

3.然后将6位一组的二进制计算出十进制,再跟base64的编码表做对比,再将最后补位的0变成=,即可得到base64字符

010010 对应二进制是:18, 18对应base64字符为:S

000110 对应二进制是:6, 6对应base64字符为:G

010101 对应二进制是:21, 21对应base64字符为:V

101100 对应二进制是:44, 44对应base64字符为:s

011011 对应二进制是:27, 27对应base64字符为:b

000110 对应二进制是:6, 6对应base64字符为:G

111100 对应二进制是:18, 18对应base64字符为:8

000000 补位的0变成=

所以Hello对应的base64编码就是:SGVsbG8=

这里贴上BASE64对照表:


参考或转载:

https://blog.csdn.net/jtshongke/article/details/83505132

标签:编码,字符,二进制,base64,码值,搞懂,ASCII,对应
来源: https://www.cnblogs.com/Karl-H/p/14695480.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有