MD5---Security加密

MD5的加密

import java.security.MessageDigest;

public class MD5 {

public static void main(String[] args) {
	String pwd = getMD5("99991");
	System.out.println(pwd);
}

//生成MD5
public static String getMD5(String message) {
	String md5 = "";
	try {
		MessageDigest md = MessageDigest.getInstance("MD5");  // 创建一个md5算法对象
		byte[] messageByte = message.getBytes("UTF-8");
		byte[] md5Byte = md.digest(messageByte);              // 获得MD5字节数组,16*8=128位
		md5 = bytesToHex(md5Byte);                            // 转换为16进制字符串
	} catch (Exception e) {
		e.printStackTrace();
	}
	return md5;
}

// 二进制转十六进制
public static String bytesToHex(byte[] bytes) {
	StringBuffer hexStr = new StringBuffer();
	int num;
	for (int i = 0; i < bytes.length; i++) {
		num = bytes[i];
		if(num < 0) {
			num += 256;
		}
		if(num < 16){
			hexStr.append("0");
		}
		hexStr.append(Integer.toHexString(num));
	}
	return hexStr.toString().toUpperCase();
}

}
MD5的加密方法:弊端,同一个密码的加密后结果是一样的,可以通过枚举测试等方法进行破解
String password = MD5.getMD5(user.getPassword());
user.setPassword(password);


Spring-Security的内置加密-----BCryptPasswordEncoder

passwordEncoder.encode(user.getPassword())

密码转换结果
123123----$2a$10$3npZGln1MQZEAGK0pvVWTeZ3q.jb3JX.arG.F.PE4hNpdnPDaB8ci


使用security的passwordEncoding方式登录

	***配置加密类必须在设置加密登录之后进行配置***
	
	
        
        
				
            
            
        
    
	


你可能感兴趣的:(技能点,技能点加持)