Base64是一种用64个字符来表示任意二进制数据的方法。
首先,准备一个包含64个字符的数组:['A', 'B', 'C', ... 'a', 'b', 'c', ... '0', '1', ... '+', '/']
 
然后对要编码的数据的二进制形式进行处理,每3个字节划分为有组,没个字节8bit,一共24bit。将这24个bit进行重新划分,划分为4组,每组6位,0 ~ 2^6-1, 可以表示范围为0~63,共64位,对应上述64个字符的数组,用于查表。
 
所以,Base64编码会把3字节的二进制数据编码为4字节的文本数据,长度增加33%,好处是编码后的文本数据可以在邮件正文、网页等直接显示。

如果要编码的二进制数据不是3的倍数,最后会剩下1个或2个字节怎么办?Base64用\x00字节在末尾补足后,再在编码的末尾加上1个或2个=号,表示补了多少字节,解码的时候,会自动去掉。(这就是为啥vid中会出现==这样的东西)
 
Python内置的base64可以直接进行base64的编解码

Base64简介的更多相关文章

  1. base64 加密

    Base64 参考网站:http://zh.wikipedia.org/wiki/Base64 简介 是网络上使用最广泛的编码系统,能够将任何二进制数据,转换成只有 65 个字符组成的文本文件 a~z ...

  2. Python Base64 编码

    0x00 Base64简介 0x01 常用场景举例 0x02 编.解码流程 0x03 Python中Base64编码与解码 0x00 Base64简介 我们知道在计算机中任何数据都是按ascii码存储 ...

  3. python[练习题]:实现Base64编码

    要求自己实现算法,不用库. Base64简介: Base64是一种用64个字符来表示任意二进制数据的方法. 用记事本打开exe.jpg.pdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多 ...

  4. Python cv2 OpenCV 中传统图片格式与 base64 转换

    Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,是一种基于64个可打印字符来表示二进制数据的方法.通过http传输图片常常将图片数据转换成base64之后再进行传输. Base64简 ...

  5. 【咸鱼教程】Base64

    教程目录1 Base64简介2 使用Base643 Demo下载 1 Base64简介百度百科:Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045-RFC2 ...

  6. php如何将base64数据流文件转换为图片文件?

    2017-03-07 在开发中,自己遇到一个前端在上传图片的时候,使用的base64数据流文件显示的图片. 也就是说 <img src="data:image/jpg;base64,& ...

  7. Java中加密算法介绍及其实现

    1.Base64编码算法 Base64简介 Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法.可查看RFC2045-RF ...

  8. AES对称加解密

    简介设计思想加密模式ECB模式(电子密码本模式:Electronic codebook)CBC模式(密码分组链接:Cipher-block chaining)CFB模式(密文反馈:Cipher fee ...

  9. Base64编码简介

      基本概念   Base64这个术语最初是在“MIME内容传输编码规范”中提出的.Base64不是一种加密算法,虽然编码后的字符串看起来有点加密的赶脚.它实际上是一种“二进制到文本”的编码方法,它能 ...

随机推荐

  1. [css3]水平垂直居中

    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);

  2. 【PCB】【AD使用】Altium Designer 的entry sheet ,offsheet和port作用

    Altium Designer之多图纸设计 1.图纸结构 图纸包括两种结构关系: 一种是层次式图纸,该连接关系是纵向的,也就是某一层次的图纸只能和相邻的上级或下级有关系: 另一种是扁平式图纸,该连接关 ...

  3. Java集合类学习笔记(Map集合)

    Map用于保存具有映射关系的数据,因此Map集合里保存着两组数据,一组用于保存Map的key,一组用于保存key所对应的value. Map的key不允许重复. HashMap和Hashtable都是 ...

  4. WebView 的使用----android和html的交互

    一.主布局文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xml ...

  5. 用markdown学习写出总结

    # PS### 快捷键:CTRL+N(新建)CTRL+1. **切片**- 套索,磁性套索,椭圆,矩形选框.2. **印章** 仿制图章工具,图案图章工具3. 钢笔4. 油漆桶5. 吸管工具, *** ...

  6. Siverlight 导出Excel (经测试通过 Vs2010 ,silverlight5 )

    网上搜了下,很多代码都有各种问题,自己抽时间整理了一下这个导出 using System; using System.Net; using System.Windows; using System.W ...

  7. Redux教程1:环境搭建,初写Redux

    如果将React比喻成士兵的话,你的程序还需要一位将军,去管理士兵(的状态),而Redux恰好是一位好将军,简单高效: 相比起React的学习曲线,Redux的稍微平坦一些:本系列教程,将以" ...

  8. 日常contest总结

    codeforces#352 div2 A 一个字符串的构造规律为1234567891011 问该字符串第i个数字是哪个 n<=1000 枚举即可 考虑这道题的拓展 当n=1e9的时候按位数枚举 ...

  9. win8没有无线网络适配器问题

    1. 先关闭ssid : 命令提示符(管理员)输入 :netsh wlan set hostednetwork mde=disallow ssid 2. 再设置无线名称和密码 :netsh wlan ...

  10. apache 重定向

    <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https:// ...