写点什么

架构师 0 期 11 周作业

发布于: 2020 年 08 月 26 日

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



public class MD5Utils {
public static String digest(final String str, final String salt)
throws NoSuchAlgorithmException {
MessageDigest md5 = MessageDigest.getInstance("MD5");
final String input = str + "23dtyb" + salt;
final byte[] output = md5.digest(input.getBytes());
//todo 需要做一些处理
return new String(output);
}
}



public class Login {
public static void main(String[] args) throws Exception {
String userId = "100001";
String userPW = "fhgrgjidjfdljfkdjfdlj";
String digestedPW = "��\u001C���̂�C\n" +
"�\u0010�";
Boolean loginSucceed = checkPW(userId, userPW, digestedPW);
if (loginSucceed) {
return;
}
throw new Exception("password error");
}
static Boolean checkPW(String userId, String userPW, String userDigestedPW) throws Exception {
try {
String digestedPW = MD5Utils.digest(userPW, userId);
if (digestedPW.equals(userDigestedPW)) {
return true;
}
return false;
} catch (final NoSuchAlgorithmException e) {
//todo 抛出业务异常
throw new Exception("");
}
}
}



用户头像

还未添加个人签名 2018.10.29 加入

还未添加个人简介

评论 (1 条评论)

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