Base64 加密之中文乱码

ase64编码将二进制数据按照每三个字节转换成四个字节可读字符,编码后的字符长度大约为136.1%。字符范围为 A-Z  a-z  0-9  \  +。但编码后的字符串不太适合使用URL传输,中文加密后的乱码也多是因为这个原因引起:放在url中传输时+号会被替换成空格;并且每76个字符都会添加一个换行"\n",这个换行符合会丢失。

例如:

哈哈哈哈哈哈。。。。

哈哈哈哈哈哈。。。。

哈哈哈哈哈哈。。。。

会被编码为:

uf65/rn+uf65/rn+oaOho6GjDQoNCrn+uf65/rn+uf65/qGjoaOhow0KDQq5/rn+uf65/rn+uf6h\no6GjoaM=

放在URL中传输时会变成:

uf65/rn uf65/rn oaOho6GjDQoNCrn uf65/rn uf65/qGjoaOhow0KDQq5/rn uf65/rn uf6h
o6GjoaM=

解析肯定会出问题。

所以在传输和解密时要做如下处理:

1.去掉\n

2.替换空格为+

时间: 2024-10-07 22:09:07

Base64 加密之中文乱码的相关文章

Android base64加密中文乱码问题解决记录

1.最近做个react-native 项目,要求有个接口需要base64加密,使用js加密后发现中文会无法base64解密 解决办法 1.导入2个包,如果没有则请自行下载 import java.io.UnsupportedEncodingException;import sun.misc.BASE64Decoder; //base64 encodepublic static String encode(String s) { if (s == null) return null; String

Base64中文乱码的问题

web端和app端base64解码时中文乱码的问题. web端: String data = new BASE64Encoder().encode(data.getBytes("UTF-8")); app端 String data2 = new String(Base64.decode(data), "UTF-8"); 编码与解码时必须指定编码类型.

rsa加密后端解密出现中文乱码解决方法

今天被这个中文乱码的问题困扰了一天,故事是这样的: 前端rsa加密,后端去解密,但是呢有中文的时候解密出来就乱了,想了各种办法未果: 结论,既然中文乱码,我就不传中文就行了哈.在加密之前用 // 前端加密前将所有中文encoder掉 var en = encodeURIComponent(str); // 后台再转换回来就行了 String result = java.net.URLDecoder.decode(en ,"UTF-8"); 这个方法很巧妙的利用了解决url加密的工具,何

解决springmvc+mybatis+mysql中文乱码问题【转】

这篇文章主要介绍了解决java中springmvc+mybatis+mysql中文乱码问题的相关资料,需要的朋友可以参考下 近日使用ajax请求springmvc后台查询mysql数据库,页面显示中文出现乱码 最初在mybatis配置如下 <select id="queryContentById" resultType = "java.lang.String" parameterType="String" >     select t

问题分析解决——中文乱码

在开发的时候不可避免的会遇到一些中文乱码,这次我来介绍总结一下我遇到的中文乱码. 首先,在发现提交上去的表单中文乱码的时候先检查是否是配置的问题. "硬件"检查: 1.检查myEclipse的编码是否为UTF-8 2.检查是否是jsp或html页面字符集编码设置错误 3.检查doPost方法中,参数获取是否设置了. 如果以上都符合,那么你就是代码出了错. 所以我们要对代码进行仔细的检查,判断是否是因某个不注意的方法,导致中文乱码. 4.修改tomcat中的默认编码 --去tomcat的

ajax请求base64加密后的json数组,并通过vue的v-for遍历输出

$.ajax({ type: 'get', dataType: 'json', url: '/Template/xpshop_currents/inc/imgUrl.json', cache: false, success: function (data) { //window.atob()base64解码,escape编码,decodeURIComponent解码,这里是为了解决base64解码后的中文乱码问题 let spdata = decodeURIComponent(escape(wi

Http请求传json数据中文乱码问题

业务场景:调easyui的dialog打开一个弹窗,传参是用json封装的,而且有中文,然后在极速模式是正常的,在ie11测试发现中文出现乱码了 var params = JSON.stringify(writParamList); top.dialog({ id: 'noticeList', title:'列表', width:900, height:500, url:'${root}/notice/multiNoticeList.do?params='+params, onclose:fun

【转】asp.net Cookie值中文乱码问题解决方法

来源:脚本之家.百度空间.网易博客 http://www.jb51.net/article/34055.htm http://hi.baidu.com/honfei http://tianminqiang.blog.163.com/blog/#m=0 ============================================================================== cookie中怎么保存中文 在用cookie保存用户名的时候,发现cookie值不能存中文

JavaWeb的各种中文乱码终极解决方法

一.Servlet输出乱码 1. 用servlet.getOutStream字节流输出中文,假设要输出的是String str ="钓鱼岛是中国的,无耻才是日本的". 1.1 若是本地服务器与本地客户端这种就不用说了,直接可以out.write(str.getBytes())可以输出没有问题.因为服务器中用str.getBytes()是采用默认本地的编码,比如GBK.而浏览器也解析时也用本地默认编码,两者是统一的,所以没有问题. 1.1 若服务器输出时用了, out.write(str