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 源代码见附件
相关推荐
在IT行业中,Base64是一种常见的数据编码方式,它将任意二进制数据转换为可打印的ASCII字符,常用于在网络上传输包含非ASCII字符的数据,如图片或PDF等。在Java和JavaScript中,Base64编码和解码是两个重要的功能,...
下面我们将详细探讨Java中的Base64编码和解码原理及其实现方式。 Base64编码的基本思想是将每3个字节(24位)的数据转换为4个Base64字符(每个6位)。由于Base64字符集有64个字符,包括大小写字母、数字以及"+"和"/...
Base64是一种网络上常见的数据编码方式,它将任意二进制数据转化为可打印的ASCII字符串,以便在电子邮件、HTTP头部等不支持二进制传输的环境中传递。标准的Base64编码表由64个字符组成,包括大小写字母、数字以及"+...
Java中的Base64编码是一种将二进制数据转化为可打印字符的编码方式,常用于在网络上传输或存储非ASCII字符的数据。Base64编码的基本原理是将每3个字节(24位)的数据转化为4个6位的字符,多余的位数通过在前面补0来...
实现BASE64编码和解码程序, 在类中实现如下函数并运行测试正确。 BASE64编码算法请在网上查询。 public String encode(byte[] data) { } public byte[] decode(String b) { }
Base64是一种将二进制数据转换为可打印ASCII字符的编码方式,广泛应用于网络传输、数据存储等领域。在Java中实现Base64编码,我们可以使用内置的`java.util.Base64`类,这个类提供了方便的方法来进行Base64的编码和...
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" 是一个Java库,主要用于实现Base64编码和解码功能。Base64是一种常见的数据编码方法,尤其在处理二进制数据时,如图片或证书,将其转换为ASCII文本格式以便在网络传输或存储时使用。这...
Java基于Base64实现编码解码图片文件是Java语言中的一种常见的编码解码实现方式。Base64是一种常用的字符编码,在很多地方都会用到,但它并不是安全领域下的加密解密算法,而是主要用于传输数据的正确性。 在Java中...
Base64编码是一种常用的数据编码方式,广泛应用于网络传输、数据存储等领域。下面我们将详细介绍如何使用Java实现图片到Base64编码的转换。 为什么需要Base64编码 在网络传输和数据存储中,图片是一种二进制数据,...
Java中的Base64编码是一种将二进制数据转化为可打印字符的编码方式,常用于在邮件、HTML或JSON等不支持二进制传输的场景中传递图像数据。Base64编码的基本原理是将每3个字节(24位)的数据转化为4个Base64字符(每个...
`javabase64-1.3.1.jar` 是一个包含Base64编码和解码功能的Java库,它提供了一些关键类和方法供开发者使用。例如,主要类`Base64`包含了编码和解码的方法,如`encodeBytes()`用于编码字节数组,`decode()`用于解码...
JavaBase64-1.3.1.jar 是一个专门用于...总的来说,JavaBase64-1.3.1.jar是一个实用的Java库,它为开发者提供了一种简单、高效的Base64编码和解码解决方案,特别适用于那些需要在不同平台之间交换二进制数据的项目。
`javabase64-1.3.1.jar`可能提供了这种编码方式,具体实现取决于库的API。 注意,虽然这里介绍的是`javabase64-1.3.1.jar`库,但Java 8及更高版本已经内置了`java.util.Base64`类,提供了一套标准的Base64编码和...
实现base64编码和解码。实现下面的类中的两个功能。 public class Base64 { /** 实现解码功能 */ public static byte[] decode(byte[] dest) { } /** 实现编码功能 */ public static byte[] encode(byte[] ...
本文将深入探讨如何在JavaScript(JS)客户端和Java(Android)端实现3DES加密解密以及Base64编码解码,这对于保护用户敏感信息和实现安全通信至关重要。 首先,3DES(Triple Data Encryption Standard)是一种加强...
Java中的Base64编码是一种将任意二进制数据转换为可打印ASCII字符的编码方式,广泛应用于网络传输、数据存储等领域。Base64编码的基本原理是将每3个字节(24位)的数据转化为4个6位的十六进制数字,然后用64个可打印...
Base64是一种在网络上传输二进制数据时常用的编码方式,它将任意的二进制数据转换成可打印的ASCII字符序列。这种编码方法在处理包含图像、音频、视频等非文本内容的电子邮件时尤为常见,因为传统的ASCII邮件系统无法...
在Java编程中,图片Base64加密解密是一种常见的数据处理技术,特别是在网络传输和存储时,由于Base64编码可以将二进制数据转换为可打印的ASCII字符,因此非常适用。`sun.misc.BASE64Encoder`和`sun.misc.BASE64...