当前位置:网站首页>MD5 encryption + salt value tool class

MD5 encryption + salt value tool class

2022-06-22 23:58:00 gblfy

package com.gblfy.utils;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.util.DigestUtils;

import java.util.UUID;

/**
 * MD5 encryption + Salt value tools 
 *
 * @author gblfy
 * @Date 2022-06-22
 **/
@Slf4j
@Component
public class MD5Utils {
    

    /**
     *  Perform password encryption 
     *
     * @param password  The original password 
     * @param salt      Salt value 
     * @return  Encrypted ciphertext 
     */
    public static String getMd5Password(String password, String salt) {
    

        /*
         *  Encryption rules :
         * 1、 Ignore the strength of the original password 
         * 2、 Use UUID As the salt value , Splice the left and right sides of the original password 
         * 3、 Cyclic encryption 3 Time 
         */
        for (int i = 0; i < 3; i++) {
    
            password = DigestUtils.md5DigestAsHex((salt + password + salt).getBytes()).toUpperCase();
        }
        return password;
    }

    /**
     *  Password check 
     *
     * @param dbSalt         Database salt value 
     * @param password       Front end parameter transmission password 
     * @param dbMd5Password  Password after database encryption 
     * @return true- Passwords are equal  false- The passwords are not equal 
     */
    public static Boolean comparePasswordsForEquality(String dbSalt, String dbMd5Password, String password) {
    
        String md5Password = MD5Utils.getMd5Password(password, dbSalt);
        log.info(" Front page parameter password -md5 encryption + Password after salt value ->{}", md5Password);

        if (dbMd5Password.equals(md5Password)) {
    
            return true;
        }
        return false;
    }

    public static void main(String[] args) {
    

        //-------------------------------------------md5+ Salt value generates password -------------------------------------------
        //1. Generate md5+ Salt value password 
        String salt = UUID.randomUUID().toString().toUpperCase();
        // The original password 
        String password = "123456";
        // Password after database encryption 
        String dbMd5Password = MD5Utils.getMd5Password(password, salt);
        log.info("md5 encryption + Password after salt value ->{}", dbMd5Password);


        //------------------------------------------- become md5+ Salt value password comparison -------------------------------------------

        // Front end parameter transmission password 
        String frontPagePasswordParam = "123456";
        // Database salt value 
        String dbSalt = salt;

        if (MD5Utils.comparePasswordsForEquality(dbSalt, dbMd5Password, frontPagePasswordParam)) {
    
            System.out.println(" The password is the same ");
        } else {
    
            System.out.println(" The passwords are different ");
        }

    }
}

原网站

版权声明
本文为[gblfy]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/173/202206222143267132.html