舒米815 2016-05-04 02:30 采纳率: 100%
浏览 2429
已采纳

关于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条回答 默认 最新

  • little_how 2016-05-04 03:45
    关注

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?