为了账号安全,请及时绑定邮箱和手机立即绑定

这样设计App的注册登录系统,合理吗

这样设计App的注册登录系统,合理吗

哈士奇WWW 2019-03-14 18:15:35
服务端数据库有LoginSalt和PasswordSalt两个字段,前者是变化的,后者是固定的。首先服务端存放的密码是MD5(p + PasswordSalt) (p为明文密码),PasswordSalt是针对每个用户单独生成的,用来防彩虹表。1.注册的时候客户端生成PasswordSalt 然后把MD5(p + PasswordSalt) (这里用PasswordSalt是为了防止截取注册密码用彩虹表反推)和 PasswordSalt传递给服务端,如果注册成功,服务端保存这两者2.登录的时候首先向服务端请求LoginSalt(LoginSalt在请求时生成,并存入对应的用户中)和PasswordSalt,然后向服务端发送MD5(MD5(p + PasswordSalt) + LoginSalt),然后服务端进行验证,如果验证通过,即登录成功,将重新生成LoginSalt并存入对应用户(防止重放攻击),这时候同时向客户端返回这个LoginSalt,以作为权限高一级API的Token。这样是否可行?主要想达到的目的有三个,1是防彩虹表,2是防止重放攻击,3是给高权限API一个凭证
查看完整描述

3 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

能起到防止作用就行,没有绝对的合理和不合理,符合需求就好


查看完整回答
反对 回复 2019-04-18
?
浮云间

TA贡献1829条经验 获得超4个赞

合理,我们的系统 也采用了 差不多的控制. 密码加密是一致的.


查看完整回答
反对 回复 2019-04-18
?
月关宝盒

TA贡献1772条经验 获得超5个赞

功能问题: 如果这样设计, 同一用户就不能同时在多个设备登录

安全问题: 何必要发明复杂而且未必密码学安全的机制呢, 作为开发者我更愿意相信https + bcrypt


查看完整回答
反对 回复 2019-04-18
  • 3 回答
  • 0 关注
  • 404 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信