package com.thhy.general.utils.password;
|
|
import com.thhy.general.common.BasicStatus;
|
import com.thhy.general.exception.BasicException;
|
|
/**
|
* @Author: zhang_xiao_bo
|
* @Date: 2022/3/22 13:38
|
* @description:
|
*/
|
public class PasswdUtils {
|
|
public static final String HASH_ALGORITHM = "SHA-1";
|
public static final int HASH_INTERATIONS = 1024;
|
public static final int SALT_SIZE = 8;
|
|
public static String encodePassword(String plainPassword){
|
String plain = plainPassword;
|
byte[] salt = Digests.generateSalt(SALT_SIZE);
|
byte[] hashPassword = Digests.sha1(plain.getBytes(), salt, HASH_INTERATIONS);
|
return Encodes.encodeHex(salt)+Encodes.encodeHex(hashPassword);
|
}
|
|
public static boolean validatePassword(String plainPassword, String password) {
|
//String plain = Encodes.unescapeHtml(plainPassword);
|
try {
|
byte[] salt = Encodes.decodeHex(password.substring(0,16));
|
byte[] hashPassword = Digests.sha1(plainPassword.getBytes(), salt, HASH_INTERATIONS);
|
return password.equals(Encodes.encodeHex(salt)+Encodes.encodeHex(hashPassword));
|
} catch (Exception e) {
|
throw new BasicException(BasicStatus.LOGIN_FAILD);
|
}
|
}
|
|
public static void main(String[] args) {
|
String ss = encodePassword("123456");
|
System.out.println(ss);
|
//System.out.println(validatePassword("ming123456",ss));
|
}
|
}
|