1. 程式人生 > >springBoot+springSecurity驗證密碼MD5加密

springBoot+springSecurity驗證密碼MD5加密

本文目的:使用springBoot+springSecurity 使用者授權驗證許可權功能,對使用者的登入密碼使用MD5 加密。

本文只講述對密碼加密部分。只需要修改securityConfig 檔案,並新增md5 工具類即可。

修改WebSecurityConfig.java

對於WebSecurityConfig.java 檔案只需修改configure(AuthenticationManagerBuilder auth) 方法。

@Override
    protected void configure(AuthenticationManagerBuilder auth) throws
Exception { auth.userDetailsService(customUserService()).passwordEncoder(new PasswordEncoder(){ @Override public String encode(CharSequence rawPassword) { return MD5Util.encode((String)rawPassword); } @Override public
boolean matches(CharSequence rawPassword, String encodedPassword) { return encodedPassword.equals(MD5Util.encode((String)rawPassword)); }}); //user Details Service驗證 }

新增MD5工具類

package com.us.example.util;

/**
 * Created by yangyibo on 17/2/7.
 */
import java.security.MessageDigest;
/**
 * MD5加密工具
 *
 */
public class MD5Util { private static final String SALT = "tamboo"; public static String encode(String password) { password = password + SALT; MessageDigest md5 = null; try { md5 = MessageDigest.getInstance("MD5"); } catch (Exception e) { throw new RuntimeException(e); } char[] charArray = password.toCharArray(); byte[] byteArray = new byte[charArray.length]; for (int i = 0; i < charArray.length; i++) byteArray[i] = (byte) charArray[i]; byte[] md5Bytes = md5.digest(byteArray); StringBuffer hexValue = new StringBuffer(); for (int i = 0; i < md5Bytes.length; i++) { int val = ((int) md5Bytes[i]) & 0xff; if (val < 16) { hexValue.append("0"); } hexValue.append(Integer.toHexString(val)); } return hexValue.toString(); } public static void main(String[] args) { System.out.println(MD5Util.encode("abel")); } }

資料庫

使用MD5 加密後,資料庫中儲存的密碼應該是加密後的密碼

這裡寫圖片描述