当前位置:网站首页>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 ");
}
}
}
边栏推荐
- 【首发】请求一下子太多了,数据库危
- OJ daily practice - sorting and naming
- Problèmes rencontrés lors de l'utilisation de redistemplate
- 2022 TIANTI match - National Finals rematch
- OLAP - Druid introduction
- 【GO】go mod模式, package 12import/add is not in GOROOT
- 美团基于 Flink 的实时数仓平台建设新进展
- 昆仑分布式数据库技术优势
- [go] go language interface
- Use smart doc to automatically generate interface documents
猜你喜欢
随机推荐
SAP UI5 应用开发教程之一百零二 - SAP UI5 应用的打印(Print)功能实现详解
[go] go language interface
RedisTemplate使用遇到\x00的问题
【UVM】别再说你的 VIP 用不了 RAL Model
KunlunDB查询优化(二)Project和Filter下推
通过天天基金投资基金安全吗?我打算开户买基金
Asynchronous FIFO
Sword finger offer 11 Minimum number of rotation array
Flutter outsourcing, undertaking flutter project
图神经网络有哪些用途和应用?
一文简述:钓鱼攻击知多少
【GO】go mod模式, package 12import/add is not in GOROOT
Introduction to the unique variable reading and writing function of Kunlun distributed database
OJ daily practice - filter extra spaces
a++,++a,!,~
软件构造课程ADT与OOP理解
[go] go array and slice (dynamic array)
Sword finger offer 06 Print linked list from end to end
OpenCvSharp (C# OpenCV) 微信QRCode解码功能使用介绍(附源码)
外包干了四年,感觉废了..
![[go] go mod mode, package 12import/add is not in goroot](/img/b5/4cf5d3f04d0e5cc6f5a957959022ec.png)







