写点什么

week11-- 作业

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

1.导致系统不可用的原因有哪些?保障系统稳定高可用的方案有哪些?请分别列举并简述。

引起故障的原因

  • 硬件故障 集群

  • 软件 bug 引入自动化测试

  • 系统发布 分批发布

  • 并发压力 限流,降级

  • 网络攻击 web 应用防火墙,代码加强防御能力

  • 外部灾害 异地多活


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

/** * SHA加密算法加盐 * @author mcrking * */public class SHAUtil {	    /**      * SHA     * @param msg      * @return      */      public static String encryptSHA(String msg,String salt) {      	StringBuilder sb = new StringBuilder();      	try{      		MessageDigest md = MessageDigest.getInstance("SHA-1");      		md.update(salt.getBytes());      		byte[] bytes = md.digest(msg.getBytes());      		for(int i=0; i< bytes.length ;i++){      			sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));      		}      	}catch(Exception e){      		    	}      	    	return sb.toString().trim();      }  	    /**     * 获取sha的salt     * @return     */    public static String getSaltSHA1(){          SecureRandom sr;          byte[] salt = new byte[16];          try {              sr = SecureRandom.getInstance("SHA1PRNG");               sr.nextBytes(salt);          } catch (NoSuchAlgorithmException e) {              e.printStackTrace();          }                    return salt.toString();      }  	        Boolean checkPW(String userId ,String pwd){       boolean flag = false;    	 User user = UserServer.getUserInfo(String userId);       String newPwd = encryptSHA(pwd ,user.getSalt());        if(newPwd.equals(user.getPwd()){       	flag = true;       }              return flag;    }     
复制代码


用户头像

Geek_165f3d

关注

还未添加个人签名 2019.12.14 加入

还未添加个人简介

评论

发布
暂无评论
week11--作业