zoukankan      html  css  js  c++  java
  • java base64编码 加密和解密(切记注意乱码问题)

     BASE64 编码是一种常用的字符编码,在很多地方都会用到。JDK 中提供了非常方便的 BASE64Encoder 和 BASE64Decoder,用它们可以非常方便的完成基于 BASE64 的编码和解码。

       切记:下面两处编码必须一致。

         获取字节流时  res = new sun.misc.BASE64Encoder().encode(s.getBytes("GBK"));

           字节流转换字符串时:      return new String(b,"GBK");

      完整代码如下:

     

    package com.util;
    
    import java.io.UnsupportedEncodingException;
    
    import sun.misc.BASE64Decoder;
    
    /**
     * base64 编码、解码util
     * 
     * @author lifq
     * @date 2015-3-4 上午09:23:33
     */
    public class Base64Util {
        /**
         * 将 s 进行 BASE64 编码
         *
         * @return String
         * @author lifq
         * @date 2015-3-4 上午09:24:02
         */
        public static String encode(String s) {
            if (s == null)
                return null;
            String res = "";
            try {
                res = new sun.misc.BASE64Encoder().encode(s.getBytes("GBK"));
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return res;
        }
    
        /**
         * 将 BASE64 编码的字符串 s 进行解码
         *
         * @return String
         * @author lifq
         * @date 2015-3-4 上午09:24:26
         */
        public static String decode(String s) {
            if (s == null)
                return null;
            BASE64Decoder decoder = new BASE64Decoder();
            try {
                byte[] b = decoder.decodeBuffer(s);
                return new String(b,"GBK");
            } catch (Exception e) {
                return null;
            }
        }
        /**
         * 
         * @return void
         * @author lifq
         * @date 2015-3-4 上午09:23:17
         */
        public static void main(String[] args) {
            System.out.println(Base64Util.encode("哈哈"));
            System.out.println(Base64Util.decode("uf65/g=="));
    
        }
    
    }

    限时领取免费Java相关资料,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo/Kafka、Hadoop、Hbase、Flink等高并发分布式、大数据、机器学习等技术。

    资料传送门: https://mp.weixin.qq.com/s/u2b_NVNuMuAPE0w4lc45fw

    关注下方公众号即可免费领取:

    Java碎碎念公众号

  • 相关阅读:
    %zsy %lqs 随感
    polynomial&generating function学习笔记
    PKUWC2020自闭记
    考前最后的感叹:CSP2019 Bless All! & AFO
    AFO
    NOI2019 Fe
    [十二省联考2019]骗分过样例 luoguP5285 loj#3050
    python异常处理,草稿
    python操作excel
    python网络编程(requests)
  • 原文地址:https://www.cnblogs.com/haha12/p/4318061.html
Copyright © 2011-2022 走看看