shiro框架采取MD5+salt方式加密密码
生活随笔
收集整理的這篇文章主要介紹了
shiro框架采取MD5+salt方式加密密码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.Maven配置
<dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-spring</artifactId><version>1.4.0</version> </dependency> <dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-ehcache</artifactId><version>1.4.0</version> </dependency>2.使用shiro的SimpleHash算法加密
salt根據UUID和時間生成
package com.vivo.internet.e.commence.common.util;import org.apache.commons.codec.digest.DigestUtils; import org.apache.shiro.crypto.hash.SimpleHash;import java.util.UUID;/*** @Author:likui* @Description:* @Date:Created in 2020/9/8 10:36*/ public class Md5SaltUtil {//摘要算法private static final String MD5_HASH = "MD5";//加密次數private static final int HASH_ITERATIONS=3;/*** 密碼加密,采用shiro框架里的SimpleHash算法* 通過MD5算法+salt來加密,加密三次* @param pass 原始密碼* @param salt 鹽值* @return 加密后的摘要*/public static String encoderPassword(String pass,String salt){Object object=new SimpleHash(MD5_HASH,pass,salt,HASH_ITERATIONS);return object.toString();}//生成salt值,根據UUID和系統當前時間組合生成public static String generateSalt(){return DigestUtils.md5Hex(UUID.randomUUID().toString() + System.currentTimeMillis() + UUID.randomUUID().toString());} }3.樣例使用
@RequestMapping("/create") public CommonVO<Integer> addUser(User user){user.setStatus(( byte)0);user.setSalt(Md5SaltUtil.generateSalt());user.setPassword(Md5SaltUtil.encoderPassword(user.getPassword(),user.getSalt()));return new CommonVO<Integer>(0,"用戶信息",1,userService.insertUser(user)); }驗證密碼時,得到用戶當前輸入的密碼,利用它前面生成salt重新進行加密,比較二者密碼是否一樣即可驗證是否成功
總結
以上是生活随笔為你收集整理的shiro框架采取MD5+salt方式加密密码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RSA加签解签方法
- 下一篇: Spring 通过Java Config