架构师课作业 - 第十一周
发布于: 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 条评论)