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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Python 图片Base64解码 还原PIL.Image或Opencv
大前提是: 前端 图片流 base64 编码 传过来 OpenCV: img_data_base64= request.POST.get("img_data") img_data=base64.b64decode(img_data_base64) nparr = np.fromstring(img_data,np.uint8) img=c
Openssl的Base64编码及解码
近日需要在C++下面做一些加解密的事情,因为是在Linux下面,首选自然是openssl. 但openssl的文档真是不敢恭维,文档少得可怜不说,在网络上搜索到的东西也是鱼龙混杂.我想我还是总结一下,有益于自己也造福别人. 首先是Base64的编码,openssl提供两种方
使用Base64编解码NSData和NSString对象
http://itony.me/488.html 本文为翻译文章,原文出处:iOS 7: Base64 Encode and Decode NSData and NSString Objects 随着iOS7正式版推出,Apple增加了使用Base64编解码的支持。在这篇文章中我们将通过两个例子,演示使用Base64编解码NSData和NSString对象。 首先,我们创
邮件附件base64解码的问题
1、附件的BASE64编码中可能含有空白字符(回车(2个字符),tab,空白),从而导致用length计算出来的不是实际的base串长度。如一段串,反复出错,原串是以=结束,最后是一个回车,在word中,统计得到而在调试中得到的值却是33027,刚好等于32221+403*2。2、base串规定,只有A-Z,a-z,0-9,+/是合法字符,=是尾部填充字符,其余空白字符(Tab
VC 中使用Base64编解码图片
使用Base64编解码图片的小例子,希望可以对您的学习有帮助。
一段把文件转为Base64编码和还原的代码
把下面的代码编译成一个可执行的控制台程序,加入名称为genf.exe执行genf e xxxx.dat,加密文件执行genf d xxxx.txt, 还原文件做这个东西的主要目的是在这个Blog没有找到哪里可以上传文件 #include #include #include #define BASE64CHAR( ch ) ( (((ch)>=a)&&((ch)  (((
java中Base64转码与解码(加密与解密)原理与使用
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL
python 将base64字符串还原成图片保存
import os,base64 strs='''/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9Pjv/2wBDAQoLCw4NDhwQEBw7KCIoOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Oz
python base64 编解码,转换成Opencv,PIL.Image图片格式
二进制打开图片文件,base64编解码,转成Opencv格式:# coding: utf-8 import base64 import numpy as np import cv2 img_file = open(r'00.JPG','rb') # 二进制打开图片文件 img_b64encode = base64.b64encode(img_file.read()) # base64编码 ...
使用openssl进行base64编码 解码
static int base64_encode(char *str,int str_len,char *encode,int *encode_len) { BIO *bmem, *b64; BUF_MEM *bptr; if ( !str || !encode ) { return 1; } b64 = BIO_new(