java使用base64编码的三种方式详解编程语言

java使用base64编码的三种方式详解编程语言

java中使用base64编码有如下三种方式

方式一:commons-codec.jar

String base64String = “whuang123”;  

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

方式二:使用sun.misc.BASE64Encoder

/**

 * 编码

 */  

 public static String encode(byte[] bstr) {  

         return new sun.misc.BASE64Encoder().encode(bstr);  

 }  

/**

 * 解码

 */  

 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;  

}

//测试:

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);  

    }  

}

java使用base64编码的三种方式详解编程语言

转载请注明来源网站:blog.ytso.com谢谢!

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/14720.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论