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 源代码见附件
相关推荐
我在网上找了半天的java、js的base64编码解码结果没有,只好自己写了,js一个文件,java一个文件,调用里面是使用方法
实现BASE64编码和解码程序, 在类中实现如下函数并运行测试正确。 BASE64编码算法请在网上查询。 public String encode(byte[] data) { } public byte[] decode(String b) { }
Java编写的Base64编码和解码程序,支持中文。
在本文中,我们介绍了Base64.encodeBase64String方法的用途和功能,它是Java语言中用于Base64编码...Base64.encodeBase64String方法是Java中进行Base64编码的一种便捷实现,能够轻松地将二进制数据转换成Base64字符串。
Base64 编码解码 Java ,Java对字符串Base64 编码解码的方法!!
java端:返回类型非字符接口调用StringUtils#base64AndCompressJson进行编码压缩 ,返回类型为字符接口调用StringUtils#base64Andcompress js 端:引入压缩包中的js文件 ,调用deBase64AndUncompress进行解压解码
Java Base64 编码和解码程序,支持中文。
用Java编写的Base64编码技术,可以把密文编码成为Base64编码,Base64编码技术广泛用于编码密文和电子邮件。
BASE64编码和解码的JAVA实现。 太简单了。直接调用API实现的。 反正不要分,你们看着下吧。
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。... javabase64-1.3.1.rar String encoded = Base64.encode("Hello, world!", "UTF-8"); String decoded = Base64.decode(encoded, "UTF-8");
java-Base64编码两个jar包,两个都可以用。
实现base64编码和解码。实现下面的类中的两个功能。 public class Base64 { /** 实现解码功能 */ public static byte[] decode(byte[] dest) { } /** 实现编码功能 */ public static byte[] encode(byte[] ...
Base64自定义码表,自己替换下字符就可以用。
android 开发中有时会需要用到base64加解密,其实base64并不算是一种加密的算法,只是一种基于64个可打印字符来表示二进制数据的表示方法。 google在android.util下提供了一个Base64工具类,可以很方便的用它encode...
base64编码工具类,使用字节数组进行编码,使用十六进制表示的字符串进行编码
https://blog.csdn.net/qq_37604915/article/details/80648850
BASE64Encoder和BASE64Decoder这两个方法是sun公司的内部方法,并没有在java,api中公开过,所以使用这些方法是不安全的,将来随时可能会从中去除,所以相应的应该使用替代的对象及方法,建议使用apache公司的API。
Java Base64编码是一种用64个字符表示任意二进制数据的方法,通过将3个字节的数据转换为4个Base64字符,实现数据的压缩和传输。 Java Base64解码过程 Java Base64解码是将Base64编码后的字符串还原为原始二进制数据...
1.Java生成二维码示例 2.图片保存到本地或生成Base64编码 3.Base64编码生成图片
string Encode(string nIn); string Decode(string nIn);