关于BASE64解码还原问题

问题描述

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

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

解决方案

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

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

解决方案二:

javascript 用base64解码后中文乱码的问题
javascript 用base64解码后中文乱码的问题
邮件附件base64解码的问题

解决方案三:

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

时间: 2024-09-14 18:56:02

关于BASE64解码还原问题的相关文章

php基于base64解码图片与加密图片还原实例_php技巧

本文实例讲述了php基于base64解码图片与加密图片还原的实现方法.分享给大家供大家参考.具体实现方法如下: 本例中$data是一段经过base64编码的图片.具体代码如下: 复制代码 代码如下: <?php //文件名:base64.php $data="/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ

c-C语言中base64解码问题

问题描述 C语言中base64解码问题 我是C预言的菜鸟在做base64的解码在参考是看到了(p[0] << 4) & 0x30 1. 不知知道其中的意思,请大神指点,充裕的话能否讲解下类似的问题.谢谢 解决方案 假设p所对应的数据是 10101010 p[0] << 4就是将p左移4位,移完之后 p对应的数据就变成 10100000 0x30对应的二进制形式可以表示成00110000 10100000&00110000最后得出的结果就是00100000 解决方案二

技术-如何将sourceFile.rdbuf()输出的字符变成可以识别的二进制或16进制

问题描述 如何将sourceFile.rdbuf()输出的字符变成可以识别的二进制或16进制 因为输出的时候都是乱码,我想变成二进制或其他进制,之后还可以再还原,不知道是否有技术可以实现.并没有开玩笑,真心请教. 解决方案 一个办法是转换成base64编码,一个办法是转换成16进制字符的ascii字符串(相当于base16编码) 解决方案二: base64编码之后 就是可以正常识别的内容(就是不出现乱码的情况啦) 然后再通过base64解码 还原成之前 那个乱码的状态 然后可以通过std::of

asp.net base64图片解码保存的问题

问题描述 asp.net base64图片解码保存的问题 ios 或 安卓 将图片转成base64 通过接口发送到asp.net一半处理程序.现在要将base64转回图片保存到服务器.求大神教我 如何把base64转回图片保存的方法 .请别百度 复制 那些都太坑了.先谢谢了. 解决方案 Convert.FromBase64String(你的base64)https://msdn.microsoft.com/zh-cn/library/system.convert.frombase64string

VC中BASE64编码和解码使用详解_C 语言

BASE64可以用来将binary的字节序列数据编码成ASCII字符序列构成的文本.完整的BASE64定义可见 RFC1421和 RFC2045.编码后的数据比原始数据略长,为原来的4/3.在电子邮件中,根据RFC822规定,每76个字符,还需要加上一个回车换行. 转换的时候,将三个byte的数据,先后放入一个24bit的缓冲区中,先来的byte占高位.数据不足3byte的话,于缓冲区中剩下的Bit用0补足.然后,每次取出6个bit,按照其值选择ABCDEFGHIJKLMNOPQRSTUVWXY

javascript中的Base64、UTF8编码与解码详解

 本文给大家介绍的是javascript中的Base64.UTF8编码与解码的函数源码分享以及使用范例,十分实用,推荐给小伙伴们,希望大家能够喜欢.     Base64编码说明 Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式. 如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因此编码后输出的文本末尾可能会出现1或2个'='. base64编码库:(已验证可用)   代码如下: var base

js对图片base64编码字符串进行解码并输出图像

 这篇文章主要介绍了js对图片base64编码字符串进行解码并输出图像的具体实现,大家可以参考下面的示例  代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.org/1999/xh

JS 实现Base64编码与解码实例详解_javascript技巧

Js实现Base64编码与解码 Base64其实是一种简单的置换加密方式,但是BASE64的用处往往并不是为了防止信息泄露,而且为了方便传输,进过BASE64编码后的信息会比原始信息长,大概是4/3倍. Base64是一种基于64个可打印字符来表示二进制数据的表示方法.由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符. Base64常用于在通常处理文本数据的场合,表示.传输.存储一些二进制数据.包括MIME的email,email via MIME, 在XML中存储复杂数据.

js对图片base64编码字符串进行解码并输出图像示例_javascript技巧

复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu