码迷,mamicode.com
首页 > 移动开发 > 详细

面试题:android用户注册代码 密码需要加密传输吗

时间:2016-04-15 19:57:17      阅读:365      评论:0      收藏:0      [点我收藏+]

标签:

答案是肯定的,至少比明文好

客户端注册和登录的时候:一个可行的方法是,客户端提交 md5(password) 密码(如上所述,此方法只是简单保护了密码,是可能被查表获取密码的)。

注册的时候:服务端数据库通过 md5(salt+md5(password)) 的规则存储密码,该 salt 仅存储在服务端,且在每次存储密码时都随机生成。这样即使被拖库,制作字典的成本也非常高。


密码被 md5() 提交到服务端之后,可通过 md5(salt + form[‘password‘]) 与数据库密码比对。此方法可以在避免明文存储密码的前提下,实现密码加密提交与验证。


这里还有防止 replay 攻击(请求被重新发出一次即可能通过验证)的问题,由服务端颁发并验证一个带有时间戳的可信 token (或一次性的)即可。


当然,传输过程再有 HTTPS 加持那就更好了。

面试题:android用户注册代码 密码需要加密传输吗

标签:

原文地址:http://www.cnblogs.com/wust221/p/5396590.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!