`

java base64编码的三种方式

阅读更多

java 中如何使用base64编码呢?

有如下三种方式:

方式一:commons-codec.jar

String base64String = "whuang123";
		byte[] result = Base64.encodeBase64(base64String.getBytes());

 

方式二:使用sun.misc.BASE64Encoder

/**
	 * 编码
	 * 
	 * @param bstr
	 * @return String
	 */
	 public static String encode(byte[] bstr) {
	 return new sun.misc.BASE64Encoder().encode(bstr);
	 }

	/**
	 * 解码
	 * 
	 * @param str
	 * @return string
	 */
	 public static byte[] decode(String str) {
	 byte[] bt = null;
	 try {
	 sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
	 bt = decoder.decodeBuffer(str);
	 } catch (IOException e) {
	 e.printStackTrace();
	 }
	
	 return bt;
	 }

 

 

方式三:使用com.sun.org.apache.xerces.internal.impl.dv.util.Base64

/***
	 * encode by Base64
	 */
	public static String encodeBase64(byte[] input) throws Exception {
		Class clazz = Class
				.forName("com.sun.org.apache.xerces.internal.impl.dv.util.Base64");
		Method mainMethod = clazz.getMethod("encode", byte[].class);
		mainMethod.setAccessible(true);
		Object retObj = mainMethod.invoke(null, new Object[] { input });
		return (String) retObj;
	}

	/***
	 * decode by Base64
	 */
	public static byte[] decodeBase64(String input) throws Exception {
		Class clazz = Class
				.forName("com.sun.org.apache.xerces.internal.impl.dv.util.Base64");
		Method mainMethod = clazz.getMethod("decode", String.class);
		mainMethod.setAccessible(true);
		Object retObj = mainMethod.invoke(null, input);
		return (byte[]) retObj;
	}

 

测试:

package com.jn.base64;

import junit.framework.Assert;

import org.apache.commons.codec.binary.Base64;

import com.common.util.SystemUtil;

public class BaseTest {
	public static void main(String[] args) throws Exception {
		String base64String = "whuang123";
		byte[] result = Base64.encodeBase64(base64String.getBytes());
		SystemUtil.printBytes(result);
		byte[] result2 = SystemUtil.encode(base64String.getBytes()).getBytes();
		System.out.println("result2:"+result2);
		byte[] result3 = SystemUtil.encodeBase64(base64String.getBytes()).getBytes();
		boolean isSuccess = SystemUtil.isSame(result, result2);
		Assert.assertEquals(true, isSuccess);
		SystemUtil.printBytes(result2);
		SystemUtil.printBytes(result3);
		System.out.println(isSuccess);
	}
}

 运行结果如下:

 

推荐使用方式一

 

com.common.util.SystemUtil 源代码见附件

  • 大小: 18.1 KB
3
1
分享到:
评论

相关推荐

    java和js相互base64编码解码

    在IT行业中,Base64是一种常见的数据编码方式,它将任意二进制数据转换为可打印的ASCII字符,常用于在网络上传输包含非ASCII字符的数据,如图片或PDF等。在Java和JavaScript中,Base64编码和解码是两个重要的功能,...

    Java Base64编码和解码

    下面我们将详细探讨Java中的Base64编码和解码原理及其实现方式。 Base64编码的基本思想是将每3个字节(24位)的数据转换为4个Base64字符(每个6位)。由于Base64字符集有64个字符,包括大小写字母、数字以及"+"和"/...

    java Base64自定义码表

    Base64是一种网络上常见的数据编码方式,它将任意二进制数据转化为可打印的ASCII字符串,以便在电子邮件、HTTP头部等不支持二进制传输的环境中传递。标准的Base64编码表由64个字符组成,包括大小写字母、数字以及"+...

    java-Base64编码

    Java中的Base64编码是一种将二进制数据转化为可打印字符的编码方式,常用于在网络上传输或存储非ASCII字符的数据。Base64编码的基本原理是将每3个字节(24位)的数据转化为4个6位的字符,多余的位数通过在前面补0来...

    java实现BASE64编码和解码程序

    实现BASE64编码和解码程序, 在类中实现如下函数并运行测试正确。 BASE64编码算法请在网上查询。 public String encode(byte[] data) { } public byte[] decode(String b) { }

    Java实现的Base64编码程序

    Base64是一种将二进制数据转换为可打印ASCII字符的编码方式,广泛应用于网络传输、数据存储等领域。在Java中实现Base64编码,我们可以使用内置的`java.util.Base64`类,这个类提供了方便的方法来进行Base64的编码和...

    javabase64-1.3.1

    Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。... javabase64-1.3.1.rar String encoded = Base64.encode("Hello, world!", "UTF-8"); String decoded = Base64.decode(encoded, "UTF-8");

    javabase64-1.2.jar

    【标题】"javabase64-1.2.jar" 是一个Java库,主要用于实现Base64编码和解码功能。Base64是一种常见的数据编码方法,尤其在处理二进制数据时,如图片或证书,将其转换为ASCII文本格式以便在网络传输或存储时使用。这...

    Java基于Base64实现编码解码图片文件

    Java基于Base64实现编码解码图片文件是Java语言中的一种常见的编码解码实现方式。Base64是一种常用的字符编码,在很多地方都会用到,但它并不是安全领域下的加密解密算法,而是主要用于传输数据的正确性。 在Java中...

    JAVA将图片转换为Base64编码

    Base64编码是一种常用的数据编码方式,广泛应用于网络传输、数据存储等领域。下面我们将详细介绍如何使用Java实现图片到Base64编码的转换。 为什么需要Base64编码 在网络传输和数据存储中,图片是一种二进制数据,...

    Java base64编码图片代码,base64 jar包

    Java中的Base64编码是一种将二进制数据转化为可打印字符的编码方式,常用于在邮件、HTML或JSON等不支持二进制传输的场景中传递图像数据。Base64编码的基本原理是将每3个字节(24位)的数据转化为4个Base64字符(每个...

    java base64的jar包

    `javabase64-1.3.1.jar` 是一个包含Base64编码和解码功能的Java库,它提供了一些关键类和方法供开发者使用。例如,主要类`Base64`包含了编码和解码的方法,如`encodeBytes()`用于编码字节数组,`decode()`用于解码...

    javabase64-1.3.1.jar

    JavaBase64-1.3.1.jar 是一个专门用于...总的来说,JavaBase64-1.3.1.jar是一个实用的Java库,它为开发者提供了一种简单、高效的Base64编码和解码解决方案,特别适用于那些需要在不同平台之间交换二进制数据的项目。

    Base64编码jar包

    `javabase64-1.3.1.jar`可能提供了这种编码方式,具体实现取决于库的API。 注意,虽然这里介绍的是`javabase64-1.3.1.jar`库,但Java 8及更高版本已经内置了`java.util.Base64`类,提供了一套标准的Base64编码和...

    JS端与java(android)端3DES加密解密和Base64编码解码文件

    本文将深入探讨如何在JavaScript(JS)客户端和Java(Android)端实现3DES加密解密以及Base64编码解码,这对于保护用户敏感信息和实现安全通信至关重要。 首先,3DES(Triple Data Encryption Standard)是一种加强...

    用java实现base64编码和解码

    实现base64编码和解码。实现下面的类中的两个功能。 public class Base64 { /** 实现解码功能 */ public static byte[] decode(byte[] dest) { } /** 实现编码功能 */ public static byte[] encode(byte[] ...

    java base64源码+jar包

    Java中的Base64编码是一种将任意二进制数据转换为可打印ASCII字符的编码方式,广泛应用于网络传输、数据存储等领域。Base64编码的基本原理是将每3个字节(24位)的数据转化为4个6位的十六进制数字,然后用64个可打印...

    Base64编码和解码java版本

    Base64是一种在网络上传输二进制数据时常用的编码方式,它将任意的二进制数据转换成可打印的ASCII字符序列。这种编码方法在处理包含图像、音频、视频等非文本内容的电子邮件时尤为常见,因为传统的ASCII邮件系统无法...

    java 图片base64 加密解密

    在Java编程中,图片Base64加密解密是一种常见的数据处理技术,特别是在网络传输和存储时,由于Base64编码可以将二进制数据转换为可打印的ASCII字符,因此非常适用。`sun.misc.BASE64Encoder`和`sun.misc.BASE64...

Global site tag (gtag.js) - Google Analytics