shiro框架采取MD5+salt方式加密密码
生活随笔
收集整理的這篇文章主要介紹了
shiro框架采取MD5+salt方式加密密码
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
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根據(jù)UUID和時(shí)間生成
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";//加密次數(shù)private static final int HASH_ITERATIONS=3;/*** 密碼加密,采用shiro框架里的SimpleHash算法* 通過(guò)MD5算法+salt來(lái)加密,加密三次* @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值,根據(jù)UUID和系統(tǒng)當(dāng)前時(shí)間組合生成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)); }驗(yàn)證密碼時(shí),得到用戶當(dāng)前輸入的密碼,利用它前面生成salt重新進(jìn)行加密,比較二者密碼是否一樣即可驗(yàn)證是否成功
總結(jié)
以上是生活随笔為你收集整理的shiro框架采取MD5+salt方式加密密码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: RSA加签解签方法
- 下一篇: InitializingBean接口使用