写点什么

架构师训练营 - 第十一周作业

用户头像
Geek_a327d3
关注
发布于: 2020 年 09 月 09 日

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



public class Demo{
private static final Encryptor encryptor = new MD5Encryptor();
public static void main(String[] args){
check(1,"123456","e10adc3949ba59abbe56e057f20f883e");
}
public static boolean checkPW(int id,String srcPassword,String ePassword){
if(srcPassword == null || srcPassword.trim().length() == 0){
return false;
}
if(ePassword == null || ePassword.trim().length() == 0){
return false;
}
return ePassword.equals(encryptor.encryption(srcPassword));
}
}
public class EncryptionException extends RuntimeException{
public EncryptionException(String msg){
super(msg);
}
}
public interface Encryptor{
public String encryption(String src);
}
public class MD5Encryptor implements Encryptor{
public String encryption(String src){
String des = "";
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] result = md.digest(source.getBytes());
StringBuilder buf = new StringBuilder();
for (int i=0;i<result.length;i++) {
byte b = result[i];
buf.append(String.format("%02X", b));
}
des = buf.toString().toLowerCase();
} catch (Exception e) {
e.printStackTrace();
throw new EncryptionException("md5 failure");
}
return des;
}
}



用户头像

Geek_a327d3

关注

还未添加个人签名 2020.04.14 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营-第十一周作业