- apps/lotteryServer, lotteryCapture, lotteryOpen 三个业务工程 - 忽略 archive/, tools/, infra/data/ 大目录与敏感配置文件 - 移除 lotteryServer 原嵌套 git,并入顶层统一管理
129 lines
6.0 KiB
Java
129 lines
6.0 KiB
Java
package javautils.encrypt;
|
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
|
import java.util.HashSet;
|
|
|
|
public class PasswordUtil {
|
|
private static HashSet<String> SIMPLE_PASSWORS = new HashSet<>();
|
|
|
|
private final static String[] SIMPLE_DIGITS = { "A", "B", "C", "D", "E", "F",
|
|
"G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f",
|
|
"g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};
|
|
static {
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString("12"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString("123"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString("1234"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString("12345"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString("123456"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString("1234567"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString("12345678"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString("123456789"));
|
|
|
|
for (int i = 0; i < 10; i++) {
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(i+"", 6)));
|
|
}
|
|
|
|
// 简单密码
|
|
for (String simpleDigit : SIMPLE_DIGITS) {
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 6)));
|
|
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(simpleDigit + "12345"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(simpleDigit + "123456"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(simpleDigit + "1234567"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(simpleDigit + "12345678"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(simpleDigit + "123456789"));
|
|
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 2) + "1234"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 2) + "12345"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 2) + "123456"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 2) + "1234567"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 2) + "12345678"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 2) + "123456789"));
|
|
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 3) + "123"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 3) + "1234"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 3) + "12345"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 3) + "123456"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 3) + "1234567"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 3) + "12345678"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 3) + "123456789"));
|
|
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 4) + "12"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 4) + "123"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 4) + "1234"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 4) + "12345"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 4) + "123456"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 4) + "1234567"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 4) + "12345678"));
|
|
SIMPLE_PASSWORS.add(generatePasswordByPlainString(StringUtils.repeat(simpleDigit, 4) + "123456789"));
|
|
}
|
|
}
|
|
|
|
public static boolean isSimplePassword(String md5Pwd) {
|
|
return SIMPLE_PASSWORS.contains(md5Pwd);
|
|
}
|
|
|
|
/**
|
|
* 把给定的MD5字符串加密成密码
|
|
* @param md5String 密码前台传输时的加密方式:MD5大写(MD5大写(密码明文),调用$.generatePassword(plainStr)即可
|
|
* @return
|
|
*/
|
|
public static String generatePasswordByMD5(String md5String) {
|
|
return MD5Util.getMD5Code(md5String).toUpperCase();
|
|
}
|
|
/**
|
|
* 把明文字符串加密成数据库密码,直接存入数据库即可
|
|
* @param plainString 明文字符串
|
|
* @return
|
|
*/
|
|
public static String generatePasswordByPlainString(String plainString) {
|
|
String password = MD5Util.getMD5Code(plainString).toUpperCase(); // 第一次加密,并转换成大写
|
|
|
|
password = MD5Util.getMD5Code(password).toUpperCase(); // 第二次加密,并转换成大写
|
|
|
|
password = MD5Util.getMD5Code(password).toUpperCase(); // 第三次加密,并转换成大写
|
|
|
|
return password;
|
|
}
|
|
|
|
|
|
/**
|
|
* 验证输入的密码是否正确
|
|
* @param dbPassword
|
|
* 数据库密码
|
|
* @param token
|
|
* 加密token
|
|
* @param md5String
|
|
* 密码前台传输时的加密方式:MD5大写(MD5大写(MD5大写(MD5大写(密码明文))) + token),调用$.encryptPasswordWithToken(plainStr, token)
|
|
* @return 验证结果,TRUE:正确 FALSE:错误
|
|
*/
|
|
public static boolean validatePassword(String dbPassword, String token, String md5String) {
|
|
String dbPasswordWithToken = MD5Util.getMD5Code(dbPassword + token).toUpperCase();
|
|
|
|
return md5String.equals(dbPasswordWithToken);
|
|
}
|
|
|
|
/**
|
|
* 验证是否是一样的密码
|
|
* @param dbPassword 数据库密码
|
|
* @param md5String 密码前台传输时的加密方式:MD5大写(MD5大写(密码明文),调用$.encryptPasswordWithToken(plainStr, token)
|
|
* @return
|
|
*/
|
|
public static boolean validateSamePassword(String dbPassword, String md5String) {
|
|
String inputPassword = generatePasswordByMD5(md5String);
|
|
|
|
return dbPassword.equals(inputPassword);
|
|
}
|
|
|
|
//生成密码
|
|
public static void main(String[] args) {
|
|
String password = "123456";
|
|
password = generatePasswordByPlainString(password);
|
|
System.out.println(password);
|
|
|
|
password = "123456";
|
|
password = generatePasswordByPlainString(password);
|
|
System.out.println(password);
|
|
}
|
|
} |