摘要说明:
BASE64:Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具有不可读性,需要解码后才能阅读。
Base64本质上是一种编码方式,但也可以用做对称式加解密方式;
Maven依赖:
<dependencies>
<!-- Apache Commons Codec软件包包含各种格式的简单编码器和解码器,如Base64和Hexadecimal。除了这些广泛使用的编码器和解码器之外,编解码器包还维护着一组语音编码实用程序。 -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
</dependencies>
java工具类:
Base64Util主要包括base64编码及解码:
package com.tit.taf.encryption;
import java.io.UnsupportedEncodingException;
import org.apache.commons.codec.binary.Base64;
/**
*
* @模块名:module_taf
* @包名:com.tit.taf.encryption
* @类名称: Base64Util
* @类描述:【类描述】base64编码及解码
* @版本:1.0
* @创建人:cc
* @创建时间:2018年7月27日下午3:31:25
*/
public class Base64Util {
/**
* 编码UTF_8
*/
public static final String CODING_UTF_8 = "UTF-8";
/**
* 编码GB2312
*/
public static final String CODING_GB2312 = "GB2312";
/**
*
* @方法名:encode
* @方法描述【方法功能描述】base64编码并指定文本编码
* @param s 待编码字符串
* @param charset 字符串编码
* @return 编码后字符串
* @throws UnsupportedEncodingException
* @修改描述【修改描述】
* @版本:1.0
* @创建人:cc
* @创建时间:2018年7月27日 下午3:36:45
* @修改人:cc
* @修改时间:2018年7月27日 下午3:36:45
*/
public static String encode(String s, String charset) throws UnsupportedEncodingException {
return new String(Base64.encodeBase64(s.getBytes(charset)));
}
/**
*
* @方法名:encode
* @方法描述【方法功能描述】base64编码
* @param s 待编码字符串
* @return 编码后字符串
* @修改描述【修改描述】
* @版本:1.0
* @创建人:cc
* @创建时间:2018年7月27日 下午3:39:16
* @修改人:cc
* @修改时间:2018年7月27日 下午3:39:16
*/
public static String encode(String s) {
return new String(Base64.encodeBase64(s.getBytes()));
}
/**
*
* @方法名:decode
* @方法描述【方法功能描述】base64解码
* @param s 待解码字符串
* @return 解码后字符串
* @修改描述【修改描述】
* @版本:1.0
* @创建人:cc
* @创建时间:2018年7月27日 下午3:39:46
* @修改人:cc
* @修改时间:2018年7月27日 下午3:39:46
*/
public static String decode(String s) {
return new String(Base64.decodeBase64(s.getBytes()));
}
public static void main(String[] args) {
try {
System.out.println(Base64Util.encode("cc", Base64Util.CODING_UTF_8));
System.out.println(Base64Util.decode("Y2M="));
}
catch (UnsupportedEncodingException e) {
System.out.println(e);
}
}
}