Java秒杀

目录

 

1 登陆模块

注册:

  1. 用户填写账号密码,点击注册
  2. 前端使用一个固定的salt值拼接到密码上
  3. 前端使用md5加密拼接后的密码
  4. 把拼接加密后的内容发送给后端
  5. 后端再随机生成一个salt值,再次拼接到密码上
  6. 后端把密码和那个随机生成的salt值都存到数据库里

登录:

  1. 用户提交密码,
  2. 前端使用一个固定的salt值拼接到密码上
  3. 前端使用md5加密拼接后的密码
  4. 把拼接加密后的内容发送给后端
  5. 后端从数据库里取出账号对应的密码 和 注册时生成的salt值
  6. 匹配 数据库中的密码 是否等于 前端传递的密码+salt值

两次MD5加密:出于安全考虑

第一次 (在前端加密,客户端):密码加密是(明文密码+固定盐值)生成md5用于传输,目的,由于http是明文传输,当输入密码若直接发送服务端验证,此时被截取将直接获取到明文密码,获取用户信息。

加盐值是为了混淆密码,原则就是明文密码不能在网络上传输。

第二次:在服务端再次加密,当获取到前端发送来的密码后。通过MD5(密码+随机盐值)再次生成密码后存入数据库。

防止数据库被盗的情况下,通过md5反查,查获用户密码。方法是盐值会在用户登陆的时候随机生成,并存在数据库中,这个时候就会获取到。

第二次的目的:
黑客若是同时黑掉数据库,通过解析前端js文件,知道如果md5加密的过程,就知道此时用户的密码。

但是此时我们要是在后端加入随机盐值和传输密码的md5组合,黑客是无法知道通过后端密码加密过程的,从而无法知道密码。

两次为什么一个固定,一个随机的salt:

因为登陆时需要从数据库中进行匹配,数据库可以保存随机salt值,进行解密所以可以用随机的salt。

 

 

 

 

 

 

 

 

 

 

 

 

 

0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值