极客大学架构师训练营 0 期 week 11 作业
发布于: 2020 年 08 月 26 日
1. 导致系统不可用的原因有哪些?保障系统稳定高可用的方案有哪些?请分别列举并简述。
硬件故障
软件bug
系统发布
并发压力
网络攻击
外部灾害
2. 密码验证函数
请用你熟悉的编程语言写一个用户密码验证函数,Boolean checkPW(String 用户 ID,String 密码明文,String 密码密文)返回密码是否正确 boolean 值,密码加密算法使用你认为合适的加密算法。
code
package com.szp.geektime.architecture.lesson11;import java.util.HashMap;import java.util.Map;import org.springframework.security.crypto.bcrypt.BCrypt;public class UserLoginService {// key userId //save salt Map<String,String> saltMap = new HashMap<>(); // key userId // save encriptPassword Map<String,String> encriptPasswordMap = new HashMap<>(); public boolean register(String userId, String password){ if(saltMap.containsKey(userId)) return false; String hash1 = BCrypt.gensalt(8); saltMap.put(userId, hash1); String encriptPW = BCrypt.hashpw(password, hash1); encriptPasswordMap.put(userId, encriptPW); return true; } public boolean login(String userId, String password){ //validate userId if(null == userId) return false; String salt = saltMap.get(userId); // not registered if(null == salt) return false; //validate password String encriptPW = BCrypt.hashpw(password, salt); if(encriptPW.equals(encriptPasswordMap.get(userId))){ return true; } return false; } public static void main(String[] args) { UserLoginService userLoginService = new UserLoginService(); String userId1 = "Jack"; String password1 = "123456"; System.out.println("user " + userId1 + "register result :" + userLoginService.register(userId1, password1)); System.out.println("user " + userId1 + "login result(false password) :" + userLoginService.login(userId1, "654321")); System.out.println("user " + userId1 + "register result(correct password) :" + userLoginService.login(userId1, password1)); String userId2 = "Tom"; String password2 = "abcdef"; System.out.println("user " + userId2 + "register result :" + userLoginService.register(userId2, password2)); System.out.println("user " + userId2 + "login result(false password) :" + userLoginService.login(userId2, "fedcba")); System.out.println("user " + userId2 + "register result(correct password) :" + userLoginService.login(userId2, password2)); }}
result
user Jack register result :trueuser Jack login result(false password) :falseuser Jack register result(correct password) :trueuser Tom register result :trueuser Tom login result(false password) :falseuser Tom register result(correct password) :true
划线
评论
复制
发布于: 2020 年 08 月 26 日阅读数: 45
chun1123
关注
还未添加个人签名 2018.03.09 加入
还未添加个人简介
评论