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. }
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. }
相关文章推荐
- Java字符串不同创建方式的理解
- 泛型快速排序(java 语言实现)
- AVL树的java实现
- Java Web基础知识之Servlet(3):Session管理
- 快速排序(java 语言实现)
- Spring基础(一)——AOP&IoC
- 20145326 《Java程序设计》第7周学习总结
- 深入浅出Java并发包—锁机制(三)
- eclipse调试百度地图demo提示 230错误 Scode码校验失败
- 深入浅出Java并发包—读写锁ReentrantReadWriteLock原理分析(二)
- 安装eclipse的JRebel6.0.3的插件
- java基础(3)--java.lang.ClassLoader类的用法
- java冒泡排序
- 解密JVM GC
- Spring MVC整体处理流程
- 深入浅出Java并发包—锁机制(一)
- java中的缓存
- 【Java学习-J.160411.0.8】笔记7-Java第一个hello world学习
- struts2中拦截器实现的三种方式
- java native关键字