2 u013906293 u013906293 于 2016.05.04 10:30 提问

关于BASE64解码还原问题

首先我用的是:org.apache.commons.codec.binary.Base64
编码、解码代码如下:

String source = "Tom";
String encode = new String(Base64.encodeBase64(source.getBytes()));
System.out.println(encode);

    encode = "VG9tV";
    System.out.println(new String(Base64.decodeBase64(encode)));
    输出结果为:
    VG9t
 Tom

    疑问:为什么我把编码之后的字符串改了,再用改的这个字符串来解码,却还是得到的是原来的字符串?

3个回答

w172087242
w172087242   Ds   Rxr 2016.05.04 11:45
已采纳

因为base64的字符都是4的倍数,也就是原先的3个字节被解析成四个字节,你加的是一个字节,还原之后变成0.75字节,不足以形成
一个有效字符,所以会被忽略。

如果有帮助,希望能结帖。

CSDNXIAOD
CSDNXIAOD   2016.05.04 10:42

javascript 用base64解码后中文乱码的问题
javascript 用base64解码后中文乱码的问题
邮件附件base64解码的问题
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

xiongzirui
xiongzirui   2016.05.04 11:30

这个和base64编码的实现原理有关系,一句两句说不清楚,自己看实现原理吧

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!