您的位置:首页 > 编程语言 > Java开发

java base64编码和解码

2016-04-17 11:14 561 查看
base64base编码解码base64编码
java 中使用base64编码和解码:

第一种方式:
通过反射使用java 中不对外公开的类:
Java代码

1. /***
2. * encode by Base64
3. */
4. public static String encodeBase64(byte[]input) throws Exception{
5. Class clazz=Class.forName("com.sun.org.apache.xerces.internal.impl.dv.util.Base64");
6. Method mainMethod= clazz.getMethod("encode", byte[].class);
7. mainMethod.setAccessible(true);
8. Object retObj=mainMethod.invoke(null, new Object[]{input});
9. return (String)retObj;
10. }
11. /***
12. * decode by Base64
13. */
14. public static byte[] decodeBase64(String input) throws Exception{
15. Class clazz=Class.forName("com.sun.org.apache.xerces.internal.impl.dv.util.Base64");
16. Method mainMethod= clazz.getMethod("decode", String.class);
17. mainMethod.setAccessible(true);
18. Object retObj=mainMethod.invoke(null, input);
19. return (byte[])retObj;
20. }

第二种方式:
使用commons-codec.jar
Java代码

1. /**
2. * @param bytes
3. * @return
4. */
5. public static byte[] decode(final byte[] bytes) {
6. return Base64.decodeBase64(bytes);
7. }
8.
9. /**
10. * 二进制数据编码为BASE64字符串
11. *
12. * @param bytes
13. * @return
14. * @throws Exception
15. */
16. public static String encode(final byte[] bytes) {
17. return new String(Base64.encodeBase64(bytes));
18. }

第三种方式:
Java代码

1. /**
2. * 编码
3. * @param bstr
4. * @return String
5. */
6. public static String encode(byte[] bstr){
7. return new sun.misc.BASE64Encoder().encode(bstr);
8. }
9.
10. /**
11. * 解码
12. * @param str
13. * @return string
14. */
15. public static byte[] decode(String str){
16. byte[] bt = null;
17. try {
18. sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
19. bt = decoder.decodeBuffer( str );
20. } catch (IOException e) {
21. e.printStackTrace();
22. }
23.
24. return bt;
25. }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: