博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编码原理_base64编码原理
阅读量:5018 次
发布时间:2019-06-12

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

 

1.1   Base64编码原理

1.1.1 概要:

Base64是通讯传输中较为常见的编码方式之一。

(注意是编码算法,而非加密算法)

参数传输的过程中会经常遇到的一种情况:使用英文不会涉及到乱码,但一旦涉及到其他语言就可能会出现乱码情况以及网络上传输的字符并不全是可打印的字符,例如视频、图片等。

Base64的出现就是为了解决此问题,它基于64个可打印的字符来表示二进制的数据的一种方法。

电子邮件出现时,只能传输英文,但随用户增加,中文、日文等文字的用户需求增加,但字符并不能被服务器或网关进行有效处理,因此Base64就出现了。随之,Base64在URL、Cookie、网页传输少量二进制文件中也有相应的使用。

1.1.2 编码原理:

我们都知道,计算机数据以字节(byte)为存储单位, 一个字节由组成8位(bit)二进制组成。那么每一位就则是最小的信息单位。

所以1Byte=8bit

(本文中的byte作为计算存储容量的计量单位。

Byte也是一种无符号的数据类型,取值0-255,且不可取负数。但不在本文章的叙述范围内,暂不做考虑。)

第一步,将待转换的字符串每三个字节分为一组,每个字节占8bit,那么共有24个二进制位。

第二步,将上面的24个二进制位每6个一组,共分为4组。

第三步,在每组前面添加两个0,每组由6个变为8个二进制位,总共32个二进制位,即四个字节。

第四步,根据Base64编码对照表获得对应的值。

例如:

1.1.3 程序函数

关于编程

python内置的base64可直接进行base64编解码。

 

 

PHP里也有相关函数

base64_encode()base64_decode(string data)

  

Java存在 org.apache.commons.codec.binary.Base64类

 

 

 

 

转载于:https://www.cnblogs.com/EEEE1/p/9866299.html

你可能感兴趣的文章
AJAX 实战【三级联动】分析
查看>>
日志收集思考
查看>>
asp.net 发布后,遇到的导出excel报错的问题
查看>>
(转)Spring boot——logback.xml 配置详解(四)<filter>
查看>>
项目中操作redis改brpop阻塞模式为订阅模式的实现-java实习笔记二
查看>>
PHP中各种Hash算法性能比较
查看>>
对象深度克隆
查看>>
12动态规划运用实例
查看>>
规则9 减少DNS查找
查看>>
web 富文本编辑器总结
查看>>
限制某个进程只能在某个CPU上运行
查看>>
宋体、实例-Java中的单例模式-by小雨
查看>>
AutoMapper转换规则
查看>>
linux内核分析系列--百度
查看>>
SDN:软件定义网络
查看>>
GitHub具体教程
查看>>
写时拷贝(Copy On Write)方案详解
查看>>
CentOS 從 PHP 5.1.X 升級到 PHP 5.3
查看>>
MVC
查看>>
第二百三十五节,Bootstrap栅格系统
查看>>