package com.nq.utils;
|
|
import cn.hutool.core.text.StrBuilder;
|
|
import javax.imageio.ImageIO;
|
import java.awt.image.BufferedImage;
|
import java.io.ByteArrayInputStream;
|
import java.io.File;
|
import java.io.FileOutputStream;
|
import java.io.IOException;
|
import java.security.MessageDigest;
|
import java.util.Base64;
|
|
public class Md5Util {
|
|
|
|
|
|
private static char sHexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
|
|
public static String getMD5(String source) {
|
try {
|
byte[] bytes = source.getBytes();
|
// 获得MD5摘要算法的 MessageDigest 对象
|
MessageDigest md = MessageDigest.getInstance("MD5");
|
// 使用指定的字节更新摘要
|
md.update(bytes);
|
// 获得密文
|
byte[] mdBytes = md.digest();
|
// 把密文转换成十六进制的字符串形式
|
int length = mdBytes.length;
|
char[] chars = new char[length * 2];
|
int k = 0;
|
for (int i = 0; i < length; i++) {
|
byte byte0 = mdBytes[i];
|
chars[k++] = sHexDigits[byte0 >>> 4 & 0xf];
|
chars[k++] = sHexDigits[byte0 & 0xf];
|
}
|
return new String(chars);
|
} catch (Exception e) {
|
e.printStackTrace();
|
return null;
|
}
|
}
|
/**
|
* 加密方法
|
* @param str
|
* @return
|
*/
|
public static String md5(String str) {
|
return getMD5(str);
|
}
|
|
//固定盐
|
private static final String salt = "30c722c6a546ss4306a93a814c9f0a";
|
|
|
public static String inputStr(String inputPass) {
|
String str = ""+salt.charAt(0)+salt.charAt(2) + inputPass +salt.charAt(5) + salt.charAt(4);
|
System.out.println(str);
|
return md5(str);
|
}
|
|
/**
|
* 将用户输入的明文密码与固定盐进行拼装后再进行MD5加密
|
* @param inputPass
|
* @return
|
*/
|
public static String inputPassToFormPass(String inputPass) {
|
String str = ""+salt.charAt(0)+salt.charAt(2) + inputPass +salt.charAt(5) + salt.charAt(4);
|
System.out.println(str);
|
return md5(str);
|
}
|
|
/**
|
* 将form表单中的密码转换成数据库中存储的密码
|
* @param formPass
|
* @param salt 随机盐
|
* @return
|
*/
|
public static String formPassToDBPass(String formPass, String salt) {
|
String str = ""+salt.charAt(0)+salt.charAt(2) + formPass +salt.charAt(5) + salt.charAt(4);
|
return md5(str);
|
}
|
|
public static String inputPassToDbPass(String inputPass, String saltDB) {
|
String formPass = inputPassToFormPass(inputPass);
|
String dbPass = formPassToDBPass(formPass, saltDB);
|
return dbPass;
|
}
|
}
|