u013906293
舒米815
采纳率100%
2016-05-04 02:30 阅读 2.3k
已采纳

关于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

    疑问:为什么我把编码之后的字符串改了,再用改的这个字符串来解码,却还是得到的是原来的字符串?
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    w172087242 little_how 2016-05-04 03:45

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

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

    点赞 2 评论 复制链接分享
  • xiongzirui 夜空中的程序猿 2016-05-04 03:30

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

    点赞 评论 复制链接分享

相关推荐