主要代碼:
1 // 鹽值 2 String salt = null; 3 String password = user.getPassword(); 4 //加密密碼 5 String encryptPassword = null; 6 7 salt = SaltUtil.generateSalt(); 8 9 encryPassword = PassWordUtil.encrypt(password,salt);
SaltUtil 類
1 public class SaltUtil { 2 3 /** 4 * 生成32位隨機鹽 5 * 6 * @return 7 */ 8 public static String generateSalt() { 9 return new SecureRandomNumberGenerator().nextBytes(16).toHex(); 10 } 11 12 }
PassWordUtil 類
1 public class PasswordUtil { 2 3 /** 4 * 密碼加鹽,再加密 5 * 6 * @param pwd 7 * @param salt 8 * @return 9 */ 10 public static String encrypt(String pwd, String salt) { 11 if (StringUtils.isBlank(pwd)) { 12 throw new IllegalArgumentException("密碼不能為空"); 13 } 14 if (StringUtils.isBlank(salt)) { 15 throw new IllegalArgumentException("鹽值不能為空"); 16 } 17 return DigestUtils.sha256Hex(pwd + salt); 18 } 19 20 }
可學習的相關博客(進一步學習更深的知識)