ICode9

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

base64编解码

2022-02-08 12:01:33  阅读:165  来源: 互联网

标签:编解码 编码 字节 字符 二进制 base64 数据


应用场景

是网络上最常见的传输8bit字节码的编码方式之一;
网络上传输的字符并不全是可打印的字符,比如二进制文件、图片等。Base64的出现就是为了解决此问题,它是基于64个可打印的字符来表示二进制的数据的一种方法;
也就是说base64编码把二进制数据转换为字符,以方便传输;

编码原理

核心思想 采用64个基本的ASCII码字符对数据进行重新编码。Base64字符表,包括大写A-Z小写a-z数字0-9和+以及/。

编码步骤

  1. 将需要编码的数据拆分成字节数组,以3个字节为一组进行拆分;当数据的字节数不是3的整倍数的时候,用0补齐;
  2. 将每组数据的二进制拼接起来,并以6位为单位分成4组;
  3. 给每组数据的最高位补充两个0,将三字节变成4字节;
  4. 将每个字节对应的10进制的值根据base64编码表查出对应的字符形成编码后的结果。在第一步用0填充的字节在编码完成后=补齐。
- 首先取ABC对应的ASCII码值
A : 65、B : 66、C : 67
- 再取二进制值
A : 01000001、B : 01000010、C : 01000011
- 然后把这三个字节的二进制码接起来
010000010100001001000011
- 再以6位为单位分成4个数据块并在最高位填充两个0后形成4个字节的编码后的值
00010000、00010100、00001001、00000011
- 再把这4个字节数据转化成10进制数
16、20、19、3
- 最后根据Base64给出的64个基本字符表,查出对应的ASCII码字符
Q、U、J、D
这里的值实际就是数据在字符表中的索引。
解码过程就是把4个字节再还原成3个字节再根据不同的数据形式把字节数组重新整理成数据。

使用bash进行编解码的使用实例

#编码
[root@kafka eureka]# echo 'abc'| base64 
YWJjCg==
[root@kafka eureka]# echo 'ABC'| base64 
QUJDCg==
# 参数-d用于解码
[root@kafka eureka]# echo 'YWJjCg==' | base64 -d
abc

注意: 上面手动完成的过程,字母ABC的编码结果应该是QUJD,而用bash编码后的结果为QUJDCg==是因为存在不可见字符换行符,换行符编码后的结果为Cg==
在这里插入图片描述

标签:编解码,编码,字节,字符,二进制,base64,数据
来源: https://blog.csdn.net/jjt_zaj/article/details/122819036

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

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

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

ICode9版权所有