BASE64加密解密及乱码问题
相信很多小伙伴都使用过BASE64加密算法。之前在项目中遇到密码使用这种加密算法后呈现出来的乱七八糟的符号问题,这里提供下解决办法。其实加解密乱码的主要原因是文字的编码格式不对应造成的。只要在加密前,解密后对字符按照一定的格式进行编码即可
加密算法获取字节流时 res = new sun.misc.BASE64Encoder().encode(s.getBytes("GBK"));
解密算法字节流转换字符串时: return new String(b,"GBK");
package com.util;
import java.io.UnsupportedEncodingException;
import sun.misc.BASE64Decoder;public class Base64Util {/*** 将字符串 s 进行 BASE64 编码*/public static String encode(String s) {if (s == null)return null;String res = "";try {res = new sun.misc.BASE64Encoder().encode(s.getBytes("GBK"));} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();}return res;}/*** 将 BASE64 编码的字符串 s 进行解码*/public static String decode(String s) {if (s == null)return null;BASE64Decoder decoder = new BASE64Decoder();try {byte[] b = decoder.decodeBuffer(s);return new String(b,"GBK");} catch (Exception e) {return null;}}public static void main(String[] args) {System.out.println(Base64Util.encode("哈哈"));System.out.println(Base64Util.decode("uf65/g=="));}
}
BASE64加密解密及乱码问题相关推荐
- java Base64加密解密中文乱码处理
前端:因base64对中文支持不友好,故需要对中文进行编码之后再转base64 var sendData = { 'inserted':encode64(encodeURIComponent(JSON ...
- js对url进行base64加密解密
原文链接:https://dsx2016.com/?p=972 微信公众号:大师兄2016 无论是传递给后台url地址,还是前端复制链接和分享链接. 都需要对url进行处理,避免一些特殊符号等格式造成 ...
- javascript base64加密解密
javascript base64加密解密 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8&q ...
- chrome 控制台 base64加密解密
1.视界 2. 背景 因为在客户机器,要查询base64的解密信息,但是因为内网无法使用网络,只能拷贝软件本想查询插件,后来发现谷歌支持解密 3.方法 在chrome控制台上可以直接使用函数做base ...
- ImageUtils.java:图片处理工具类[裁剪/图片水印/文字水印/缩放补白/Base64加密解密]
用到的jar包: commons-beanutils-1.8.0.jar commons-codec-1.10.jar package com.zhenzhigu.commons.util; im ...
- 在线base64加密解密工具
在线base64加密解密工具 在线base64加密解密工具 本工具支持对字符串进行base64加密和解密(严格来说,只能算是字符串编码),纯客户端计算,数据不会上传到服务器中,请放心使用. https ...
- 在线BASE64加密解密、UrlEncode编码/解码、native/ascii在线转换工具 -toolfk程序员工具网
本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果.Tool ...
- js怎么实现对html代码加密解密,JS实现Base64加密解密
JavaScript实现Base64加密解密.Base64与其说是加密算法不如说是方便数据传输而生的数据转换手段. 测试代码:html> test .resource_enc, .resourc ...
- Java base64加密解密 两种实现方式
1.为什么要使用Base 64 Base 64主要用途不是加密,而是把一些二进制数转成普通字符,方便在网络上传输. 由于一些二进制字符在传输协议中属于 控制字符,不能直接传送,所以需要转换一下才可以. ...
最新文章
- golang go mod包管理
- 动态库、静态库、运行时库、引入库之间的区别
- Linux中文档去掉windows文本的多余的回车符(^M)
- 前置仓没活路?盒马mini要做行业终极目标还为时尚早
- coreboot学习7:ramstage阶段之设备枚举流程
- su室外渲染参数设置_紫天资源星球下载:多层公寓楼室外Lumion预渲染场景
- 三星s8android pie,三星确认了Galaxy S8/S8+及Note9等手机的Android
- mysql双节点部署_MariaDB GALERA 集群双节点部署
- 代码笔记——Toast显示文本,图片,图文
- vs中的opt文件包含了整个宇宙
- refprop物性库_refprop 9.1 下载-refprop(制冷剂物性查询运算软件)附中文教程 9.1 最新免费版 - 河东下载站...
- JIRA统计工时,我们用Tempo
- LeetCode 1723 完成所有工作的最短时间 题解
- 为什么设计稿是750px
- 【转】为您解决HDMI无声的烦恼
- Linux集群的安装和配置
- oracle 创建自增序列
- 美丽联合集团赵成:要让员工看到自己的未来
- Word 2016 撰写论文(1): 公式居中、编号右对齐
- WebService技术实现方案(转)
热门文章
- 百度全景图/内景图切换示例
- 计算机程序设计是干嘛的,程序设计究竟是做什么事情的
- 服务器虚拟化属于saas技术吗,SaaS属于云计算服务吗
- 当了10年程序员,我开窍了!
- 如何写网络营销用的成功案例文章
- html5实现宠物图片网站(html,css)
- 菜单栏程序坞APP的实现2(全面优化)
- 王坚:阿里巴巴为什么会“去IOE”(一) | 《商业价值》杂志
- 【2018/10/27测试T1】洛阳怀
- 公民身份号码是一种由18位数字组成的特征组合码,其排列顺序从左至右依次为:6位数字地址码、8位数字出生日期码,3位数字顺序码和1位数字校验码(校验码若为10则用字符X来表示)。编写程序从键盘输入一个