用户密码 前后端处理方式
前端加密原始密码:
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前端加密,此时则可以成功登陆
浙公网安备 33010602011771号