架构师课作业 - 第十一周
发布于: 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>
划线
评论
复制
发布于: 2020 年 08 月 26 日阅读数: 47
Tulane
关注
还未添加个人签名 2018.09.18 加入
还未添加个人简介
评论 (1 条评论)