• MD5加密


    UTIL工具类

    MD5Util

    package com.kude.util;
    
    import org.springframework.util.StringUtils;
    
    import java.security.MessageDigest;
    
    /**
     * @author szj
     * @date 2019/7/20 14:39
     */
    public class MD5Util {
    
        private static String byteArrayToHexString(byte b[]) {
            StringBuffer resultSb = new StringBuffer();
            for (int i = 0; i < b.length; i++)
                resultSb.append(byteToHexString(b[i]));
    
            return resultSb.toString();
        }
    
        private static String byteToHexString(byte b) {
            int n = b;
            if (n < 0)
                n += 256;
            int d1 = n / 16;
            int d2 = n % 16;
            return hexDigits[d1] + hexDigits[d2];
        }
    
        /**
         * 返回大写MD5
         *
         * @param origin
         * @param charsetname
         * @return
         */
        private static String MD5Encode(String origin, String charsetname) {
            String resultString = null;
            try {
                resultString = new String(origin);
                MessageDigest md = MessageDigest.getInstance("MD5");
                if (charsetname == null || "".equals(charsetname))
                    resultString = byteArrayToHexString(md.digest(resultString.getBytes()));
                else
                    resultString = byteArrayToHexString(md.digest(resultString.getBytes(charsetname)));
            } catch (Exception exception) {
            }
            return resultString.toUpperCase();
        }
    
        public static String MD5EncodeUtf8(String origin) {
            origin = origin + PropertiesUtil.getProperty("password.salt", "");
            return MD5Encode(origin, "utf-8");
        }
    
    
        private static final String hexDigits[] = {"0", "1", "2", "3", "4", "5",
                "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};
    
    }

    PropertiestiesUtil

    package com.kude.util;
    
    import org.apache.commons.lang3.StringUtils;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.Properties;
    
    /**
     * @author szj
     * @date 2019/7/20 14:39
     */
    public class PropertiesUtil {
    
        private static Logger logger = LoggerFactory.getLogger(PropertiesUtil.class);
    
        private static Properties props;
    
        static {
            String fileName = "salt.properties";
            props = new Properties();
            try {
                props.load(new InputStreamReader(PropertiesUtil.class.getClassLoader().getResourceAsStream(fileName),"UTF-8"));
            } catch (IOException e) {
                logger.error("配置文件读取异常",e);
            }
        }
    
        public static String getProperty(String key){
            String value = props.getProperty(key.trim());
            if(StringUtils.isBlank(value)){
                return null;
            }
            return value.trim();
        }
    
        public static String getProperty(String key,String defaultValue){
    
            String value = props.getProperty(key.trim());
            if(StringUtils.isBlank(value)){
                value = defaultValue;
            }
            return value.trim();
        }
    
    
    
    }

    配置文件

    salt.properties

    password.salt = geelysdafaqj23ou89ZXcj@#$@#$#@KJdjklj;D../dSF.,

    实现层

        public ServerResponse<User> login(int userId,String password){
                UserExample userExample = new UserExample();
                UserExample.Criteria criteria = userExample.createCriteria();
                criteria.andUserIdEqualTo(userId);
                List<User> list = userMapper.selectByExample(userExample);
                if(list.size() == 0){
                    return ServerResponse.createByErrorMessage("用户账号不存在");
                }
                String md5Password = MD5Util.MD5EncodeUtf8(password);
                User user = list.get(0);
                if(user.getPassword().equals(password)){
                    user.setPassword(StringUtils.EMPTY);
                    return ServerResponse.createBySuccess(user);
                }
                return ServerResponse.createByErrorMessage("登陆失败");
        }

    (注:本文代码摘自慕课视频)

  • 相关阅读:
    【图论,数学 + 线性基】AcWing 228. 异或
    【数学,DP】AcWing 232. 守卫者的挑战
    【图论】圆方树笔记
    3. 数仓建模理论 ODS层建模思想
    2.数仓建模理论
    bitmap字体制作
    pageHelper分页失效分析
    《瞬变》
    mssql数据库访问权限控制
    golang 使用gosqlmock对 insert, update, delete, select做单元测试
  • 原文地址:https://www.cnblogs.com/szjbk/p/11217912.html
Copyright © 2020-2023  润新知