不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
base64编码
编辑:dnawo 日期:2008-10-29
为什么要使用base64编码?
在Email的传送过程中,由于历史原因,Email只被允许传送ASCII字符,即一个8位字节的低7位。因此,如果您发送了一封带有非ASCII字符(即字节的最高位是1)的Email通过有"历史问题"的网关时就可能会出现问题。网关可能会把最高位置为0!很明显,问题就这样产生了!因此,为了能够正常的传送Email,这个问题就必须考虑!也正是基于这些原因,产生了base64编码。
base64编码原理
base64把每三个8bit的字节转换为四个6bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8bit的字节,最后用一个码表来得到我们想要的字符串(也就是最终的Base64编码),可以看出,转换后的字符串理论上将要比原来的长1/3。
1)二个字节的情况:将这二个字节的一共16个二进制位,按照上面的规则,转成三组,最后一组除了前面加两个0以外,后面也要加两个0。这样得到一个三位的base64编码,再在末尾补上一个"="号。
2)一个字节的情况:将这一个字节的8个二进制位,按照上面的规则转成二组,最后一组除了前面加二个0以外,后面再加4个0。这样得到一个二位的base64编码,再在末尾补上两个"="号。
例如:
Man 转换后为 TWFu;
Ma 转换后为 TWE=;
M 转换后为 TQ==;
base64码表
0-25对应A-Z;
26-51对应a-z;
52-61对应0-9;
62对应+;
63对应/;
在Email的传送过程中,由于历史原因,Email只被允许传送ASCII字符,即一个8位字节的低7位。因此,如果您发送了一封带有非ASCII字符(即字节的最高位是1)的Email通过有"历史问题"的网关时就可能会出现问题。网关可能会把最高位置为0!很明显,问题就这样产生了!因此,为了能够正常的传送Email,这个问题就必须考虑!也正是基于这些原因,产生了base64编码。
base64编码原理
base64把每三个8bit的字节转换为四个6bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8bit的字节,最后用一个码表来得到我们想要的字符串(也就是最终的Base64编码),可以看出,转换后的字符串理论上将要比原来的长1/3。
1)二个字节的情况:将这二个字节的一共16个二进制位,按照上面的规则,转成三组,最后一组除了前面加两个0以外,后面也要加两个0。这样得到一个三位的base64编码,再在末尾补上一个"="号。
2)一个字节的情况:将这一个字节的8个二进制位,按照上面的规则转成二组,最后一组除了前面加二个0以外,后面再加4个0。这样得到一个二位的base64编码,再在末尾补上两个"="号。
例如:
Man 转换后为 TWFu;
Ma 转换后为 TWE=;
M 转换后为 TQ==;
base64码表
0-25对应A-Z;
26-51对应a-z;
52-61对应0-9;
62对应+;
63对应/;
评论: 0 | 引用: 0 | 查看次数: 3799
发表评论
请登录后再发表评论!