解决前端js密码加密传输,java后台在Base64中解码中文出现乱码的问题

本文介绍了在前端使用JS进行Base64加密,后端Java解码时遇到中文乱码问题的解决过程。通过引入jquery.base64.js库,使用sun.misc.BASE64Decoder进行解码,并通过指定UTF-8编码格式,成功避免了解码后的乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接上code

1、首先在js页面引入jquery.base64.js文件,这个百度一搜就有了

2、java后台解码代码,用的是Jdk自带的类  sun.misc.BASE64Decoder。若MyEclipse没提示找不到这个类的话解决方案为 

右健项目名点击build path  ---> configure build path ----> 选择libraries 先删除JRESystem Library再增加回来,后重新编辑clean一下就能找到这个类了,如下图


2.1 、java解码代码

    /**
     *   Base64解码
     * @param code
     * @return
     */
    public static String Base64Decoding(String code) {   
    	BASE64Decoder decoder = new BASE64Decoder();
    	 byte[] decoding;
		try {
			decoding = decoder.decodeBuffer(code);
			return new String(decoding,StandardCharsets.UTF_8);
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
    } 
	



3、 一开如我也是看网上的博客前台直接使用这种方式进行编码



4、测式时直接将编码后的字符直接复制到后台去进行解码,可是解码结果为中文或中文标点符合的内容全是乱码,如下图




5、于是我又在网络上查询解决方法,在经过一个小时后还没有找到解决方法时,突然间我想到,乱码无非就是编码格式不一致导致的吗,我的页面是使用utf-8是为了让它

告诉浏览器,要用utf-8解码,我现在用的是basc64编码,是不是也应该告诉base64我使用的编码格式然后后台再解码呢,一想到这里直接在js的base64构造方法里多加了一个参数,发现他没有报错,并且编码后的字符串也不一样了,变的更长了,我想也许是因为utf-8占用的字节更大,所以它变的更长了吧,如下图



6、于是我立马将使用utf-8编码后的字符串复制到后台进行测式,发现解决一切正党,中文跟中文符号都能正常显示,如下图



7、那么使用这种方式就能解决中文后台解码出现乱码的问题了


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值