• 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碎碎念公众号

  • 相关阅读:
    6、Django模板语法
    django 使用form验证用户名和密码
    django 用户登陆的实现 构造类的方式
    django 登陆增加除了用户名之外的手机和邮箱登陆
    django xadmin的全局配置
    django xadmin app models 注册
    django之xadmin
    django后台数据管理admin设置代码
    django的所有app放在一个文件夹下便于管理
    django重写用户模型
  • 原文地址:https://www.cnblogs.com/haha12/p/4318061.html
Copyright © 2020-2023  润新知