博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java base64编码、解码的三种方式
阅读量:5256 次
发布时间:2019-06-14

本文共 3337 字,大约阅读时间需要 11 分钟。

 

java base64编码、解码

CreationTime--2018年7月24日10点38分

Author:Marydon

1.方式一:DatatypeConverter

  说明:使用jdk自带的DatatypeConverter.java类实现,但是jdk版本必须>=1.6。

import java.io.UnsupportedEncodingException;import javax.xml.bind.DatatypeConverter;

  编码

/** * base64编码之方法一 * @explain DatatypeConverter.java实现 * @param str *            待编码字符串 * @return 编码字符串 */public static String encode(String str) {	// base64字符串	String base64Str = "";	try {		// String-->byte[]		byte[] data = str.getBytes("utf-8");		// 编码		base64Str = DatatypeConverter.printBase64Binary(data);	} catch (UnsupportedEncodingException e) {		e.printStackTrace();	}	return base64Str;}  

  解码

/** * base64解码之方法一 * @explain DatatypeConverter.java实现 * @param base64Str *            待解码字符串 * @return 解码字符串 */public static String decode(String base64Str) {	// 解码后的字符串	String str = "";	// 解码	byte[] base64Data = DatatypeConverter.parseBase64Binary(base64Str);	try {		// byte[]-->String		str = new String(base64Data, "utf-8");	} catch (UnsupportedEncodingException e) {		e.printStackTrace();	}	return str;}  

2.方式二:Base64

  说明:使用jdk自带的Base64.java类实现,但是jdk版本必须>=1.8。

import java.io.UnsupportedEncodingException;import java.util.Base64;

  编码

/** * base64编码之方法二 * @explain Base64.java实现 * @param str *            待编码字符串 * @return 编码字符串 */public static String encode2(String str) {	// base64字符串	String base64Str = "";	try {		// String-->byte[]		byte[] data = str.getBytes("utf-8");		// 编码		base64Str =Base64.getEncoder().encodeToString(data);	} catch (UnsupportedEncodingException e) {		e.printStackTrace();	}	return base64Str;}  

  解码

/** * base64解码之方法二 * @explain Base64.java实现 * @param base64Str *            待解码字符串 * @return 解码字符串 */public static String decode2(String base64Str) {	// 解码后的字符串	String str = "";	// 解码	byte[] base64Data = Base64.getDecoder().decode(base64Str);	try {		// byte[]-->String		str = new String(base64Data, "utf-8");	} catch (UnsupportedEncodingException e) {		e.printStackTrace();	}	return str;} 

3.方式三:Base64

  所需jar包:commons-codec.jar

import java.io.UnsupportedEncodingException;import org.apache.commons.codec.binary.Base64;

  编码

/** * base64编码之方法三 * @explain Base64.java实现 * @param str *            待编码字符串 * @return 编码字符串 */public static String encode3(String str) {	// base64字符串	String base64Str = "";	try {		// String-->byte[]		byte[] data = str.getBytes("utf-8");		// 编码		base64Str =Base64.encodeBase64String(data).replaceAll("\r\n", "");	} catch (UnsupportedEncodingException e) {		e.printStackTrace();	}	return base64Str;}

  解码

/** * base64解码之方法三 * @explain Base64.java实现 * @param base64Str *            待解码字符串 * @return 解码字符串 */public static String decode3(String base64Str) {	// 解码后的字符串	String str = "";	// 解码	byte[] base64Data = Base64.decodeBase64(base64Str);	try {		// byte[]-->String		str = new String(base64Data, "utf-8");	} catch (UnsupportedEncodingException e) {		e.printStackTrace();	}	return str;}

4.测试

public static void main(String[] args) {	String str = "http://www.cnblogs.com/Marydon20170307";	String base64 = Base64Utils.encode(str);// aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9NYXJ5ZG9uMjAxNzAzMDc=	System.out.println(base64);	String str2 = Base64Utils.decode(base64);	System.out.println(str.equals(str2));// true	}

5.效率比较

  快-->慢:方式二 > 方式一 > 方式三

  因此,如果项目用的是jdk1.8,最佳选择是方式二;jdk1.6,最佳选择是方式一。

 

 相关推荐:

 

 

转载于:https://www.cnblogs.com/Marydon20170307/p/9358776.html

你可能感兴趣的文章
css3学习01
查看>>
二维数组的最大子数组和 时间复杂度:O(n的四次方)
查看>>
故事板 — 视图切换(segue)与传值
查看>>
【USACO】 奶牛会展
查看>>
js对象的创建
查看>>
ActiveMQ笔记之点对点队列(Point-to-Point)
查看>>
继承和多态
查看>>
Dijkstra+计算几何 POJ 2502 Subway
查看>>
修复IE不能执行JS的方法
查看>>
程序员究竟该如何提高效率zt
查看>>
Java虚拟机的功能
查看>>
希尔排序法(缩小增量法)
查看>>
PHP编程基础学习(一)——数据类型
查看>>
MongoDB-JAVA-Driver 3.2版本常用代码全整理(2) - 查询
查看>>
linux文件操作
查看>>
NPOI处理Word文本中上下角标
查看>>
Android笔记 Handler
查看>>
如何阅读大型前端开源项目的源码(转)
查看>>
error:Your local changes to the follwing files would be overwritten by merge
查看>>
java.util.Arrays类详解
查看>>