知识回归01
nginx
nginx 是连接前后端之间的桥梁,当前端发起请求时,可以将请求反向代理到服务器进行处理,当单个服务器压力比较大,可以通过nginx的特性负载均衡进行不同的轮询规则,分配到多个服务器上(集群)
加密
对于用户密码隐私,可以进行MD5加密(明文->密文)但是容易暴破解,可以使用加盐操作进行加密
每次
BCrypt.hashpw都会获取一个随机的hash值,但每个随机的通过BCrypt.checkpw(String,String)都可以校验密码
//加密
String hashpw = BCrypt.hashpw("123456", BCrypt.gensalt());
// $2a$10$50qXmo8oAE54Cz/S3fESvubTA24b4hM8QcFNN/jOBs.7Bu7Of0Hqa
// $2a$10$yQQoVvqnAF8vom88JEvb0uyPD94GMdXy4APFqhMxtOq.J2Im37xLW
System.out.println(hashpw);
//解密
if (BCrypt.checkpw("123456","$2a$10$50qXmo8oAE54Cz/S3fESvubTA24b4hM8QcFNN/jOBs.7Bu7Of0Hqa")){
System.out.println("第一个解密成功");
}
if (BCrypt.checkpw("123456","$2a$10$yQQoVvqnAF8vom88JEvb0uyPD94GMdXy4APFqhMxtOq.J2Im37xLW")){
System.out.println("第二个解密成功");
}
SHA-256加密
//字符串验证
String pwd = "123456";
String sha256Hash = getSHA256Hash(pwd);//SHA-256指纹是固定的
System.out.println("密码加密后的 SHA-256指纹是: " + sha256Hash);
if (getSHA256Hash(pwd).equalsIgnoreCase(sha256Hash)) {
System.out.println("验证通过");
} else {
System.err.println("验证失败");
}
public static String getSHA256Hash(String input) {
try {
// 创建MessageDigest实例并指定SHA-256算法
MessageDigest digest = MessageDigest.getInstance("SHA-256");
// 计算哈希值(返回字节数组)
byte[] hashBytes = digest.digest(input.getBytes());
// 将字节数组转换为十六进制字符串
return bytesToHex(hashBytes);
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("SHA-256算法不可用", e);
}
}
explan查看慢sql
直接打开一个sql编辑器 在需要测的sql语句前添加
explan关键字
压测
yml文件配置springboot内置的tomcat参数,可以利用
apache-jmeter-5.4.1工具对指定api接口进行 100/1000QPS线程数 测试,可以在汇总报告里看到接口执行成功率(而这个成功率受max-connections+accept-count影响)



server:
tomcat:
threads:
min-spare: 10 #最少线程数
max: 20 #最大线程数
#最大连接数[最大连接数+最大等待数 = 最多可以接受多少访问]
max-connections: 90
#最大等待数
accept-count: 10
当你的才华配不上你的野心,努力的时候到了!

浙公网安备 33010602011771号