目前主流靠谱的登录密码加密流程是怎样的?
对于用户登录的密码验证的流程怎样靠谱?(不讨论关于https的通道加密)
1.前端明文传递密码到后端进行加密处理,对处理后的密文与数据库做对比返回结果;
2.前端对密码做加密处理传递密文到后端,后端对密文与数据库做对比返回结果;
3.前端对密码做加密处理传递密文到后端,后端解密后得到明文与数据库做对比返回结果;
4.前端对密码做加密处理传递密文1到后端,后端解密后再对明文做其他加密处理,后密文2与数据库做对比返回结果;
5.前端对密码做加密处理传递密文1到后端,后端再对密文1做二次加密处理,后密文2与数据库做对比返回结果;
6.其他恰当方式
考虑关于数据库泄露,数据传输过程中被截获等情景;
求详细流程;
另外请附带加密使用的算法,如RSA,MD5等.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果中间可以截获请求数据,那你前端只针对密码做的任何加密都相当于做的无用功。因为你后端区分不出来此请求是真正前端发送还是被截获之后的二次请求。
如果后端针对前端传过来的数据不做任何处理,直接比对数据库,那你数据泄露了之后就相当于是裸奔了。
所以,后端加密算法是一定要有的,而且是数据库里存储的是加密之后的数据,对比的是传入password加密之后和数据库做对比。
至于前端,如果前端代码不被破解的话,倒是可以做一次可逆加密(des,aes),把password加密后传给后台,后台进行解密得到password原数据,然后在按照固定算法(不可逆)得到加密后的数据,与数据库进行对比。这样子最少前端代码破解不了,他们截取之后拿到的也是可逆加密之后的密文。
前端加盐加密发送后端,后端继续加盐加密与数据库进行匹配。
不需要解密。
前对对密码是不会加密的,基本都是sha256(salt + password)存储在数据库,每次前端传password过来,后端那算出来的哈希值和数据库的值进行对比验证
而且基于https传输秘钥没有问题,即使中间人攻击,拿到的也是密文
有能力的,自己写一套加密算法,在前端对密码进行加密,加密过程的js打包/代码混淆,尽可能让人不能看出来算法。后端根据约定的算法解密。
或者非对称加密的方式。后端提供一个接口动态返回一个公钥到前端,前端根据公钥进行加密。后端收到之后,利用私钥解密。
你可以参考爱奇艺、优酷这类网站的登录流程。他们就是对密码进行加密之后,传输的。
后端肯定是需要解密的,否则前端加密就没有任何意义了。