zoukankan      html  css  js  c++  java
  • 生成md5密码

    public static void main(String[] args) {
            Random random = new Random();
            String salt = String.valueOf(random.nextInt(4));
            System.out.println("salt-----" + salt);
            String phone = "15808758263";
            System.out.println("phone----" + phone);
            String pwdMd5 = MD5Util.salt(phone, salt);
            System.out.println("pwdMd5-----" + pwdMd5);
        }
    package com.sjaco.lccloud.common.utils;
    
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    
    public class MD5Util {
        private static final String MD5_ALGORITHM_NAME = "MD5";
    
        public MD5Util() {
        }
    
        public static String encrypt(String source) {
            return encodeMd5(source.getBytes());
        }
    
        private static String encodeMd5(byte[] source) {
            try {
                return encodeHex(MessageDigest.getInstance("MD5").digest(source));
            } catch (NoSuchAlgorithmException var2) {
                throw new IllegalStateException(var2.getMessage(), var2);
            }
        }
    
        private static String encodeHex(byte[] bytes) {
            StringBuilder buffer = new StringBuilder(bytes.length * 2);
            byte[] var2 = bytes;
            int var3 = bytes.length;
    
            for(int var4 = 0; var4 < var3; ++var4) {
                byte aByte = var2[var4];
                if ((aByte & 255) < 16) {
                    buffer.append("0");
                }
    
                buffer.append(Long.toString((long)(aByte & 255), 16));
            }
    
            return buffer.toString();
        }
    
        public static String salt(String pwd, String salt) {
            MessageDigest digest;
            try {
                digest = MessageDigest.getInstance("MD5");
            } catch (NoSuchAlgorithmException var6) {
                throw new IllegalStateException(var6.getMessage(), var6);
            }
    
            if (salt != null) {
                digest.reset();
                digest.update(salt.getBytes());
            }
    
            byte[] hashed = digest.digest(pwd.getBytes());
            int iterations = 1;
    
            for(int i = 0; i < iterations; ++i) {
                digest.reset();
                hashed = digest.digest(hashed);
            }
    
            return encodeHex(hashed);
        }
    
        public static void main(String[] args) {
            System.out.println(salt("123456", "8pgby"));
        }
    }
    随笔看心情
  • 相关阅读:
    Django关于StreamingHttpResponse与FileResponse响应文件或视频的下载请求
    APScheduler可能遇到的问题
    django中model聚合使用
    Java 递归判断迷宫问题是否有路
    direct path read/write (直接路径读/写)
    DRM 简介
    SQL Server2008表名中含“.”号处理方法
    Java学习之:JDK动态代理与CGLIB动态代理
    强大易用!新一代爬虫利器 Playwright
    为什么cudaMalloc()参数是二级指针
  • 原文地址:https://www.cnblogs.com/stromgao/p/15588562.html
Copyright © 2011-2022 走看看