认证短信MD5加密笔记

1.短信使用三方接口,阿里云-官网

在auth服务上远程调用三方接口即可

1. 验证码的再次校验

  1. 将验证码存入redis中,因为它不是一个永久数据
  2. key可以是手机号,加上头
  3. value就是验证码,加上手机号

2. 接口防刷,防止恶意刷验证码

  1. 在验证码redis中的value上加上一个系统时间
  2. 判断系统时间和你要再次调用接口的时间,相差多少,
  3. 如果不满足60s,不能重新发送,需要返回一个异常状态(自定义)
  4. 满足程序就往下执行,实现发送验证码功能

3. 注册成功回到登录页面

  1. 直接重定向到登录页

  2. 定义一个Vo,实现数据存储校验

    • 用户名-不能为空-通过@NotEmpty(message=“不能为空”)
    • 用户名-校验length-通过@Length(min=“6”,max=“18”,message=“用户名是6-18位”)
    • 密码-类似用户名
    • 手机号-校验不能为空,校验正则表达式-@Pattern(regexp="",message="")
    • 验证码-不能为空

4. 校验出错

返回到注册页面-用重定向

2. 密码加密

1. MD5加密

  1. 压缩性:不论多大的数据,加密以后都是固定长度
  2. 容易计算:从原数据计算处md5,很容易
  3. 抗修改性:对原数据只要有修改,他的md5值都不一样
  4. 强抗碰撞:两个不同的数据,使他们具有相同的md5值是非常困难的

2. MD5加盐

  1. 通过生成的MD5值和盐字符串进行组合
  2. 数据库同时存储MD5和盐值

3. *使用BCryptPasswordEncoder

  1. 通过密码加密器进行加密,

  2. 相同的数据,每次得到的值都不一样

  3. 通过方法可以确定,当前值和密码是否一致

    BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
    //加密
    String encode = passwordEncoder.encode("123456");//每次的生成的都不一致
    //判断
    boolean matches = passwordEncoder.matches("123456","数据库中的密文");
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值