用户密码 前后端处理方式

 

前端加密原始密码:

1、对原始密码进行多次加盐MD5(其他的方法也可以,反正保证无法直接还原出原始密码和不容易被暴力破解)

2、再将值进行前端额外处理(异或、调换字符串位置、参杂无用的随机字符串)

3、最后使用公钥进行RSA加密

 

后端对前端传来的数据进行解密处理:

1、使用私钥对前端传来的加密密码进行解密

2、使用前端额外处理的还原方法对密码进行还原,得到了前端的多次加盐MD5的那串结果。

 

后端将密码保存进数据库(注册或修改密码)

1、前端的多次加盐MD5的那串结果已经获得,此时对该值进行后端额外处理(异或、调换字符串位置、参杂无用的随机字符串),处理方法不能与前端额外处理方法相同

2、使用公钥进行RSA加密,然后保存到数据库中

 

后端从数据库中取出密码进行比对(登录)

1、将从数据库中取出的密码使用私钥进行RSA解密

2、使用后端额外处理的还原方法对密码进行还原,得到了前端的多次加盐MD5的那串结果。

3、拿这个结果与 后端对前端传来的数据进行解密处理后得到的结果 对比,如果相同则密码正确。

 

此种密码处理的特点:

1、后端无法获得用户的真实密码,因为多次加盐MD5不可逆

2、如果被脱库,被人拿到数据库中的密码,

  a、因为不知道私钥,所以无法解密进行MD5暴力破解

  b、如果攻击者直接发送数据库中的密码进行登录操作,因为前端额外处理和后端额外处理的方法不同,所以登录会失败

  c、如果攻击者拿到了私钥,但不知道后端额外处理的还原方法,依然无法得到多次加盐MD5的那串结果,无法进行暴力破解

  d、如果攻击者拿到了私钥和后端额外处理的还原方法,则可以得到多次加盐MD5的那串结果,可以进行暴力破解

  e、如果攻击者得到多次加盐MD5的那串结果,则可以查看前端代码,直接调用前端额外处理和RSA前端加密,此时则可以成功登陆

 

posted on 2019-03-24 14:56  HB1  阅读(1910)  评论(0)    收藏  举报

导航