写点什么

架构师课作业 - 第十一周

用户头像
Tulane
关注
发布于: 2020 年 08 月 26 日



作业:

请用你熟悉的编程语言写一个用户密码验证函数,Boolean checkPW(String 用户 ID,String 密码明文,String 密码密文)返回密码是否正确 boolean 值,密码加密算法使用你认为合适的加密算法



import org.apache.commons.lang.StringUtils;
import org.apache.shiro.crypto.hash.SimpleHash;
import org.apache.shiro.util.ByteSource;
public class Login {
/**
* 校验用户输入的密码是否正确
* @param userId 用户ID (当做盐 salt)
* @param passwd 输入的密码
* @param passwdFromDB 数据库中的加密密码
* @return
*/
public Boolean checkPW(String userId, String passwd, String passwdFromDB){
final String entryPasswd = generateEncryPasswd(passwd.trim(), userId);
return StringUtils.equals(entryPasswd, passwdFromDB);
}
/**
* 生成加密密码
* @param passwd 明文密码
* @param salt 盐
* @return
*/
private String generateEncryPasswd(String passwd, String salt){
final ByteSource credentialssalt = ByteSource.Util.bytes(salt);
final SimpleHash simpleHash = new SimpleHash("MD5", passwd, credentialssalt, 1024);
return simpleHash.toString();
}
}



使用了 apache shiro 的加密方式, maven引入:

<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>1.4.0</version>
</dependency>



用户头像

Tulane

关注

还未添加个人签名 2018.09.18 加入

还未添加个人简介

评论 (1 条评论)

发布
用户头像
请添加“极客大学架构师训练营”标签,便于分类
2020 年 08 月 27 日 09:52
回复
没有更多了
架构师课作业 - 第十一周