摘要: Javabase64编码的三种方式 有如下三种方式: 方式一:commons-codec.jar Java代码 1. String base64String="whuang123"; 2. byte[] result = Base64.
Javabase64编码的三种方式
有如下三种方式:
方式一:commons-codec.jar
Java代码
1. String base64String="whuang123";
2. byte[] result = Base64.encodeBase64(base64String.getBytes());
方式二:使用sun.misc.BASE64Encoder
Java代码
1. /**
2. *编码
3. *
4. *@parambstr
5. *@returnString
6. */
7. publicstaticStringencode(byte[]bstr){
8. return new sun.misc.BASE64Encoder().encode(bstr);
9. }
10.
11. /**
12. *解码
13. *
14. *@paramstr
15. *@returnstring
16. */
17. publicstaticbyte[]decode(Stringstr){
18. byte[]bt=null;
19. try{
20. sun.misc.BASE64Decoderdecoder=newsun.misc.BASE64Decoder();
21. bt=decoder.decodeBuffer(str);
22. }catch(IOExceptione){
23. e.printStackTrace();
24. }
25.
26. returnbt;
27. }
方式三:使用com.sun.org.apache.xerces.internal.impl.dv.util.Base64
Java代码
1. /***
2. *encodebyBase64
3. */
4. publicstaticStringencodeBase64(byte[]input)throwsException{
5. Classclazz=Class
6. .forName("com.sun.org.apache.xerces.internal.impl.dv.util.Base64");
7. MethodmainMethod=clazz.getMethod("encode",byte[].class);
8. mainMethod.setAccessible(true);
9. ObjectretObj=mainMethod.invoke(null,newObject[]{input});
10. return(String)retObj;
11. }
12.
13. /***
14. *decodebyBase64
15. */
16. publicstaticbyte[]decodeBase64(Stringinput)throwsException{
17. Class clazz=Class
18. .forName("com.sun.org.apache.xerces.internal.impl.dv.util.Base64");
19. MethodmainMethod=clazz.getMethod("decode",String.class);
20. mainMethod.setAccessible(true);
21. ObjectretObj=mainMethod.invoke(null,input);
22. return(byte[])retObj;
23. }
运行结果如下:
推荐使用方式一。
https://yq.aliyun.com/articles/52597