base64位编码原理与分析

Base64是一种用于将任意字节序列转化为不易被人直接识别形式的编码方式,主要用于解决Email仅支持ASCII字符的问题。它将3个8位字节转化为4个6位字节,并在前面补0,形成8位字节。编码后代码量会增加约1/3,非3的整数倍时使用'='进行补位。例如,字符串'张3'编码后为'1iUz'。
摘要由CSDN通过智能技术生成

打开一封QQ邮箱,显示邮件原文,你将会看到如下这样的信息:

This is a multi-part message in MIME format.

------=_NextPart_4CA2B3AA_08661D78_10BF6743
Content-Type:text/html;
	charset="utf-8"
Content-Transfer-Encoding:base64
    说明这封邮件的内容是64位编码的。

    什么是Base64?

    Base64被定义为:Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式。(The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable.) 

    由于历史原因,Email只被允许传送ASCII字符,即一个8位字节的低7位。因此,如果您发送了一封带有非ASCII字符(即字节的最高位是1)的Email通过有“历史问题”的网关时就可能会出现问题。所以base64位编码才存在。

    Base64编码的原理

    Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。    

    字符串“张3” 
    11010101 11000101 00110011 

    转化成base64位编码的内容是:

    00110101 00011100 00010100 00110011 

    最后参看base64编码对应的字符表:

Base64 编码表
Value Char   Value Char   Value Char   Value Char
0 A 16 Q 32 g 48 w
1 B 17 R
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值