You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
|
package com.kiisoo.ic.utils;
|
|
|
|
|
|
|
|
|
|
|
|
import com.kiisoo.ic.system.entity.PrivilageAccountDO;
|
|
|
|
|
|
import org.apache.shiro.crypto.RandomNumberGenerator;
|
|
|
|
|
|
import org.apache.shiro.crypto.SecureRandomNumberGenerator;
|
|
|
|
|
|
import org.apache.shiro.crypto.hash.SimpleHash;
|
|
|
|
|
|
import org.apache.shiro.util.ByteSource;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 密码加密类
|
|
|
|
|
|
* @author Arvin
|
|
|
|
|
|
*
|
|
|
|
|
|
*/
|
|
|
|
|
|
public class PasswordEncry {
|
|
|
|
|
|
|
|
|
|
|
|
/** 指定散列算法为md5 */
|
|
|
|
|
|
public static String algorithmName = "MD5";
|
|
|
|
|
|
|
|
|
|
|
|
/** 散列迭代次数 */
|
|
|
|
|
|
public final static int hashIterations = 2;
|
|
|
|
|
|
|
|
|
|
|
|
/** 随机数生成器 */
|
|
|
|
|
|
private static RandomNumberGenerator randomNumberGenerator = new SecureRandomNumberGenerator();
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 生成随机盐值对密码进行加密
|
|
|
|
|
|
* @param userDO 登录识别串(用户名)
|
|
|
|
|
|
* @return
|
|
|
|
|
|
*/
|
|
|
|
|
|
public PrivilageAccountDO encrypt(PrivilageAccountDO userDO) {
|
|
|
|
|
|
userDO.setSalt(randomNumberGenerator.nextBytes().toHex());
|
|
|
|
|
|
String newPassword = new SimpleHash(algorithmName,userDO.getPassword(), ByteSource.Util.bytes(userDO.getCredentialsSalt()),hashIterations).toHex();
|
|
|
|
|
|
userDO.setPassword(newPassword);
|
|
|
|
|
|
return userDO;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|