博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈Base64编码算法
阅读量:6273 次
发布时间:2019-06-22

本文共 871 字,大约阅读时间需要 2 分钟。

一、什么是编码解码

  编码:利用特定的算法,对原始内容进行处理,生成运算后的内容,形成另一种数据的表现形式,可以根据算法,再还原回来,这种操作称之为编码。

  解码:利用编码使用的算法的逆运算,对经过编码的数据进行处理,还原出原始数据,这种操作称之为解码。

 

二、什么是Base64编码算法

  可以将任意的字节数组数据,通过算法,生成只有(大小写英文、数字、+、/)(一共64个字符)内容表示的字符串数据

  即将任意的内容转换为可见的字符串形式。

 

三、Base64算法的由来

  以前发送邮件只支持可见字符的传送。由此,需要有一个方法将不可见的字符转换为可见的字符,便产生了Base64编码算法

 

四、Base64算法的特点

1、将数据按照 3个字节一组的形式进行处理,每三个字节在编码之后被转换为4个字节

  即:如果一个数据有6个字节,可编码后将包含6/3*4=8个字节

2、当数据的长度无法满足3的倍数的情况下,最后的数据需要进行填充操作,即补“=” ,这里“=”是填充字符,不要理解为第65个字符

 

eg: 三个字节 ,转换成 4个字节 的过程:

  

 

可以看出,将原始数据的 每三个字节分为一组,按位进行分割为 每6位一个字节的形式,进行转换,形成新的4个字节。这四个字节才通过Base64编码表进行映射,形成最后实际的Base64编码结果。

如果原始数据最后无法凑成3个字节,则补填充,以“=”作为替换,代表没有数据

 

五、

Base64编码索引表

 

六、Base64使用场景

1、服务器给客户端在JSON中传递二进制数据

2、客户端给服务器传递参数时,通过Base64传递二进制内容

 

七、注意点

1、Base64是编码算法,不是加密算法,只是用来编码字节数组,形成字符串的,并提供了解码功能

2、Base64.encodeToString(byte[] data,int flag);

第二个参数设置NO_WRAP 即代表生成的字符串是否换行

Base64.encode(String str,int flag)同上

 

相关知识:

转载地址:http://xympa.baihongyu.com/

你可能感兴趣的文章
android 打开各种文件(setDataAndType)转:
查看>>
补交:最最原始的第一次作业(当时没有选上课,所以不知道)
查看>>
Vue实例初始化的选项配置对象详解
查看>>
PLM产品技术的发展趋势 来源:e-works 作者:清软英泰 党伟升 罗先海 耿坤瑛
查看>>
vue part3.3 小案例ajax (axios) 及页面异步显示
查看>>
软件测试(二)之 Failure, Error & Fault
查看>>
浅谈MVC3自定义分页
查看>>
.net中ashx文件有什么用?功能有那些,一般用在什么情况下?
查看>>
select、poll、epoll之间的区别总结[整理]【转】
查看>>
CSS基础知识(上)
查看>>
PHP中常见的面试题2(附答案)
查看>>
26.Azure备份服务器(下)
查看>>
mybatis学习
查看>>
LCD的接口类型详解
查看>>
C#中使用RabbitMQ收发队列消息
查看>>
Spring Boot Unregistering JMX-exposed beans on shutdown
查看>>
poi 导入导出的api说明(大全)
查看>>
说说自己对RESTful API的理解s
查看>>
Mono for Android 优势与劣势
查看>>
将图片转成base64字符串并在JSP页面显示的Java代码
查看>>