Base64编码

1、主要用于邮件,加密后的密文只包括大小写字母,10个数字和+ / = ,共计65个,其中==只作为占位符,在密文最后出现,所以只有64个字符,而1byete=8bit,1byte能表示256,而为了只能表示64,所以只取1byte只取6bit,然后在前面补2bit的0,即可。这样如果原来三个字节的明文,编码后,变成4byte密文,也就是变长了1/3. 
如果明文字符数不是3的整数倍,则最后肯定还剩有字符,则后面也要补足0,结果生成了== 
例如A:0x41  二进制0100 0001 前6位010000 补高位两个0为0001 0000 即十进制的16对应Q。 剩下的二位01,所以后面需要补足2byte,这样才能有18位,可以被6整除。01 0000 0000 0000 0000进行编码:0001 0000 编码为Q,后面为两个占位符,用==填充。

2、Base64是把3个字节变成4个可打印字符,所以Base64编码后的字符串一定能被4整除;

3、等号一定用作后缀,且数目一定是0个、1个或2个。这是因为如果原文长度不能被3整除,Base64要在后面添加\0凑齐3n位。为了正确还原,添加了几个\0就加上几个等号。显然添加等号的数目只能是0、1或2;


4、严格来说base64不能算是一种加密,只能说是编码转换。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值