• Md5Utils加密工具类


    package cn.com.prac.util;
    
    import java.security.MessageDigest;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    /**
     * MD5加密
     * @author Administrator
     *
     */
    public class Md5Utils {
    
        private static final Logger LOGGER = LoggerFactory.getLogger(Md5Utils.class);
    
    
        private static byte[] md5(String s) {
            MessageDigest algorithm;
            try {
                algorithm = MessageDigest.getInstance("MD5");
                algorithm.reset();
                algorithm.update(s.getBytes("UTF-8"));
                byte[] messageDigest = algorithm.digest();
                return messageDigest;
            } catch (Exception e) {
                LOGGER.error("MD5 Error...", e);
            }
            return null;
        }
    
        private static final String toHex(byte hash[]) {
            if (hash == null) {
                return null;
            }
            StringBuffer buf = new StringBuffer(hash.length * 2);
            int i;
    
            for (i = 0; i < hash.length; i++) {
                if ((hash[i] & 0xff) < 0x10) {
                    buf.append("0");
                }
                buf.append(Long.toString(hash[i] & 0xff, 16));
            }
            return buf.toString();
        }
    
        public static String hash(String s) {
            try {
                return new String(toHex(md5(s)).getBytes("UTF-8"), "UTF-8");
            } catch (Exception e) {
                LOGGER.error("not supported charset...{}", e);
                return s;
            }
        }
        
        /**
         * 对密码按照用户名,密码,盐进行加密
         * @param username 用户名
         * @param password 密码
         * @param salt 盐
         * @return
         */
        public static String encryptPassword(String username, String password, String salt) {
            return Md5Utils.hash(username + password + salt);
        }
        
        /**
         * 对密码按照密码,盐进行加密
         * @param password 密码
         * @param salt 盐
         * @return
         */
        public static String encryptPassword(String password, String salt) {
            return Md5Utils.hash(password + salt);
        }
        
    }
  • 相关阅读:
    Linux Bash
    grep 及正则表达式
    Linux 文件系统
    Linux 操作系统基础
    常见的磁盘I/O和网络I/O优化技巧
    NIO的工作方式
    网络I/O 工作机制
    spring Boot环境下dubbo+zookeeper的一个基础讲解与示例
    深入分析Java I/O 工作机制
    CDN工作机制和负载均衡
  • 原文地址:https://www.cnblogs.com/-scl/p/7845084.html
Copyright © 2020-2023  润新知