base64编码

为什么叫base64

因为它是基于64个字符进行的编码
A-Z -- 0 - 25
a-z -- 26 - 51
0-9 -- 52 - 61
+ -- 62
/ -- 63

26 + 26 + 10 + 1 + 1 = 64

为什么需要base64

简单说是因为一些特殊字符无法传输,而通过base64编码之后就都是普通字符

如何进行base64编码

首先我们要知道
一个字节等于8个二进制位
1Byte = 8bit

base64以3个字节也就是24个二进制位为一组,到时候解析也是以3个字节去解析

base64是以6个二进制位为一个单元进行解析,而字符是以8个二进制位为一个单元

6和8的最小公倍数是24,所以base64编码以24个二进制位为一组。这样,保证每一组base64编码能对应3个字节。

下面来看如何进行编码 对 abc 进行编码

  1. abc
  2. abc转换为ASCII码 得到
    a - 97
    b - 98
    c - 99
  3. 将97、98、99转换为8位二进制 得到
    97 - 01100001
    98 - 01100010
    99 - 01100011
  4. 所以这个abc的二进制表示就是011000010110001001100011
  5. 然后每6位为一个单元取
    011000
    010110
    001001
    100011
  6. 转换为10进制 得到
    24
    22
    9
    35
  7. 根据base64的编码表得到
    Y
    W
    J
    j

所以最终abc的base64编码就是 YWJj


那么对于不足24个二进制位的如何处理

比如 ab

转换之后得到的二进制是 0110000101100010

按base64分组之后是 011000 010110 0010

第三组不足6位,通过补0 凑齐6位,结果如下

011000 010110 001000

按base64编码表得到 YWI

此时不足一组,通过=补齐一组

所以最终结果是 YWI=

中文的base64编码

中文需要看按哪种编码来进行转换 然后再进行base64编码

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Base64编码由来 Base64最早是用来解决电子邮件的传输问题。 传统的电子邮件是1982年定下技术规范的,详...
    Ashton阅读 7,385评论 0 6
  • 1、Base64编码原理 下图为Base64编码索引表: 字符选用了"A-Z、a-z、0-9、+、/" 64个可打...
    M_JCs阅读 5,744评论 1 9
  • "Base64编码":描述:Base64是密码学的基石。 特点:可以将任意的二进制数据进行Base64编码。 结果...
    闪电迷阅读 6,572评论 0 0
  • Base64编码可将任意二进制数据转换为字符编码,转换后的编码包括:A ~ Z a ~ z 0 ~ 9 + /及作...
    TIME_for阅读 4,751评论 0 6
  • 李棉和徐生从小一起在一个小村子里长大,小时候他们打打闹闹,大人常开玩笑,李棉和徐生是一对小夫妻,这时候,李棉的脸莫...
    糖分与西瓜阅读 1,209评论 0 0