周练习 11

用户头像
何毅曦
关注
发布于: 2020 年 12 月 06 日
  • 导致系统不可用的原因有哪些?保障系统稳定高可用的方案有哪些?请分别列举并简述。

  • 硬件问题

  • 系统资源(CPU,内存,磁盘,带宽等)不够用

  • 解决方式: 增加系统资源,查找耗尽资源问题的代码

  • 软件问题

  • 发布的代码可能出现了bug

  • 解决方式: 查找问题代码,重新发布等

  • 发布问题

  • 发布过程中,因为停机导致的服务不可用

  • 解决方式: 版本回退重新发布等

  • 访问压力

  • 高访问压力下,服务器负载压力过大

  • 解决方式: 流量削峰(队列,令牌桶,漏桶等)

  • 恶意攻击

  • CSRF攻击等

  • 解决方式:应用防火墙等

  • 外部灾害

  • 火灾地震,光纤断裂

  • 解决方式: 异地多活

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

package com.example.week11;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class TestEncode {
public static void main(String[] args) {
String userID = "4J29XLNfVUYBdmaZr8nwz7hqHTI5gpce";
String password = "4Mxn65RrhD3ILdAF";
String encodePassword = "2a06df1dcc707f610dcdd479b151ec40";
Boolean checkResult = checkPW(userID, password, encodePassword);
System.out.println(String.format("userID : %s, password : %s, encodePassword : %s, checkResult : %s", userID, password, encodePassword, checkResult));
}
public static Boolean checkPW(String userID, String password, String encodePassword) {
String md5 = stringToMD5(userID + password);
return encodePassword.equals(md5);
}
public static String stringToMD5(String plainText) {
byte[] secretBytes = null;
try {
secretBytes = MessageDigest.getInstance("md5").digest(
plainText.getBytes());
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("没有这个md5算法!");
}
String md5code = new BigInteger(1, secretBytes).toString(16);
for (int i = 0; i < 32 - md5code.length(); i++) {
md5code = "0" + md5code;
}
return md5code;
}
}



userID : 4J29XLNfVUYBdmaZr8nwz7hqHTI5gpce, password : 4Mxn65RrhD3ILdAF,
encodePassword : 2a06df1dcc707f610dcdd479b151ec40, checkResult : true



用户头像

何毅曦

关注

还未添加个人签名 2019.03.20 加入

还未添加个人简介

评论

发布
暂无评论
周练习 11