架构师训练营 - 第十一周作业
发布于: 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; }}
划线
评论
复制
发布于: 2020 年 09 月 09 日阅读数: 38
Geek_a327d3
关注
还未添加个人签名 2020.04.14 加入
还未添加个人简介
评论