BASE64 编码是一种常用的字符编码,在很多地方都会用到。JDK 中提供了非常方便的 BASE64Encoder 和 BASE64Decoder,用它们可以非常方便的完成基于 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;

/**
* base64 编码、解码util
*
* @author lifq
* @date 2015-3-4 上午09:23:33
*/
public class Base64Util {
/**
* 将 s 进行 BASE64 编码
*
* @return String
* @author lifq
* @date 2015-3-4 上午09:24:02
*/
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 block
e.printStackTrace();
}
return res;
} /**
* 将 BASE64 编码的字符串 s 进行解码
*
* @return String
* @author lifq
* @date 2015-3-4 上午09:24:26
*/
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;
}
}
/**
*
* @return void
* @author lifq
* @date 2015-3-4 上午09:23:17
*/
public static void main(String[] args) {
System.out.println(Base64Util.encode("哈哈"));
System.out.println(Base64Util.decode("uf65/g==")); } }

限时领取免费Java相关资料,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo/Kafka、Hadoop、Hbase、Flink等高并发分布式、大数据、机器学习等技术。

资料传送门: https://mp.weixin.qq.com/s/u2b_NVNuMuAPE0w4lc45fw

关注下方公众号即可免费领取:

java base64编码 加密和解密(切记注意乱码问题)的更多相关文章

  1. Java Base64位加密和解密(包括其他加密参考)

    链接https://blog.csdn.net/longguangfu8/article/details/78948213 常用加密解密算法[RSA.AES.DES.MD5]介绍和使用 https:/ ...

  2. 利用java Base64 实现加密、解密

    Base64加密解密 package com.stone.util; import java.io.UnsupportedEncodingException; import sun.misc.*; p ...

  3. Java进阶开发-基于Base64的加密与解密操作

    基于Base64的加密与解密操作 正常来讲加密基本上永远伴随着解密,所谓的加密或者解密往往都是需要有一些所谓的规则.在JDK1.8开始提供有一组新的加密处理操作,Base64处理.在这个类里面有两个内 ...

  4. Kotlin/Java Base64编码和解码(图片、文件)

    原文: Kotlin/Java Base64编码和解码(图片.文件) | Stars-One的杂货小窝 最近在项目中使用到了Base64编码和解码,便是稍微写篇文章记录一下 PS:本文代码都是使用Ko ...

  5. android Java BASE64编码和解码二:图片的编码和解码

    1.准备工作 (1)在项目中集成 Base64 代码,集成方法见第一篇博文:android Java BASE64编码和解码一:基础 (2)添加 ImgHelper 工具类 package com.a ...

  6. Java实现MD5加密及解密的代码实例分享

    链接:http://www.jb51.net/article/86027.htm Java实现MD5加密及解密的代码实例分享 作者:厦门大学陈黎栋 字体:[增加 减小] 类型:转载 时间:2016-0 ...

  7. Java的MD5加密和解密

    链接:http://www.cnblogs.com/android-blogs/p/5305598.html Java的MD5加密和解密 简单demo: import  java.security.* ...

  8. AES —— JAVA中对称加密和解密

    package demo.security; import java.io.IOException; import java.io.UnsupportedEncodingException; impo ...

  9. android Java BASE64编码和解码一:基础

    今天在做Android项目的时候遇到一个问题,需求是向服务器上传一张图片,要求把图片转化成图片流放在 json字符串里传输. 类似这样的: {"name":"jike&q ...

随机推荐

  1. 使用enable_shared_from_this示例

    /*测试enable_shared_from_this*/ #include <iostream> #include <boost/smart_ptr/shared_ptr.hpp& ...

  2. Git (1)

    对于程序员来说,版本管理工具可称得上是必需品.越来越多的版本管理开始使用Git,特别是Github的流行更加使得大家对于Git越来越关注.因此对于Git的学习是非常必要和重要的. 先看几个好玩的数据: ...

  3. 对象序列化XML

    /// <summary>/// 对象序列化XML/// </summary>/// <param name="type">类型</par ...

  4. 5亿投资A站G站:中文在线的二次元野心

    中文在线二次元战略的发布会上,所有演讲嘉宾都穿上了印有“进击”二字的帽衫,似乎在表明这家以版权起家的公司进入二次元世界的决心. 11月21日晚,中文在线发布公告,拟以5亿元现金战略投资二次元门户网站A ...

  5. php约瑟夫环

    <?php function popChar($str , $m , $current = 0){ $number = count($str); $num = 1; if(count($str) ...

  6. Delphi 停靠技术的应用

    一.基础知识介绍 1.VCL组件的基础知识 在TWinControl类中有一个DockSite属性(boolean),它的作用是是否允许别的控件停靠在它的上面:在TControl类中有一个DragKi ...

  7. Windows下配置g++的简单方法

    需要下载名为 Cygnus的软件.下载地址: http://www.claremontmckenna.edu/math/ALee/g++/full.exe 安装完成后配好环境变量就可以用gcc, g+ ...

  8. ASP.NET MVC轻教程 Step By Step 4——Model、View和Controller

    ASP.NET MVC中的Model(数据模型)主要包括定义数据结构.数据库读写.数据验证等等和对象处理相关的工作. 在解决方案资源管理器中找到Model文件夹,点击右键,添加一个新类,名为“Mess ...

  9. RegularExpressionValidator 常用

    RegularExpressionValidator 控件用于验证输入值是否匹配正则表达式指定的模式 属性: ControlToValidate="要验证的控件名称" Valida ...

  10. JsRender

    JsRender 不少前端人员应该都用过,它是一个比较强大的模板,不牵涉太多技术依赖,使用起来非常舒服.我本人在前端开发中使用React之前,都是用的它了(实际上我感觉React没有JsViewes好 ...