关于登陆服务器设计的记录
程序员文章站
2022-06-22 10:41:05
关于登陆服务器的实现 (1) 设计 怎么实现合理,怎么实现安全,怎么能够保证用户的账号安全。这里是我的一些经验,以及我实现的方式。 登陆的本质是验证密码的正确,当然也必须保证这个过程是安全的,不会被别人盗取。这样就需要对传输的数据进行加密,最安全的方案是用非对称的加密方式对数据进行保护,这样本身没有 ......
关于登陆服务器的实现
(1) 设计
怎么实现合理,怎么实现安全,怎么能够保证用户的账号安全。这里是我的一些经验,以及我实现的方式。
登陆的本质是验证密码的正确,当然也必须保证这个过程是安全的,不会被别人盗取。这样就需要对传输的数据进行加密,最安全的方案是用非对称的加密方式对数据进行保护,这样本身没有问题,但是这样的话就需要对客户段服务器分别保存对方的公共密钥。这种方法可行,还有一种成型的方案是用jwt的方式来实现这样也是可以的。
这里用的不是这种方式。用的是一种对称加密的方式来保证数据传输的安全性,用md5的方式对密码进行保护,就可以做到安全的数据传输。
怎么做到对称加密数据的安全,万一密钥被别人知道呢,这里是这样实现的,每个用户在登陆的时候,都先去服务器要一个密钥,这个密钥是在本次登陆过程中对数据进行加密。这个密钥在内存中或者是缓存中进行临时存储。
md5是怎么保护用户的密码的?这个需要去了解md5的实现原理。
(2) 注册
注册数据可以通过 token = base64(账号 + md5(账号+密码)) 来组册 服务器存储 账号->md5(账号+密码)的对应关系。
(3) 登陆
1.通过uuid 来获取相对唯一的密钥。
2.通过uuid和登陆token来登陆 token=base64(aes(账号 + md5(账号+密码))) 。
(4) 验证
通过账号id以及本次登陆生成的token来验证本次登陆。
具体实现代码可以留言和我要!
上一篇: django的信号
下一篇: [NOIP2016]天天爱跑步-题解