
我现在所知道的情况
优点:
缺点:
还有其他优缺点吗?大家可以补充下么
1 AngryMagikarp 2020-05-06 11:54:24 +08:00 第一个根本不算优点,你需要知道用户密码干嘛,除非你本来就想通过这种手段钓鱼,然后去黑用户的其他帐号,比如邮箱什么的。 在这个系统里,你要做的任何操作都可以绕过密码验证,因为系统就是你们自己开发的。 |
2 zqqian 2020-05-06 11:55:36 +08:00 要知道用户的密码? 你是搞黑产的吗?用来撞库? |
3 lizytalk 2020-05-06 11:56:31 +08:00 via iPhone 可以知道用户密码是缺点好么.... |
4 ysc3839 2020-05-06 11:56:59 +08:00 如果“可以知道用户密码”属于优点的话,那不加密直接存储密码会更优,因为少了加密过程,理论上不加密的性能更高,占用空间更少 (不需要保存密钥)。 |
5 zooo 2020-05-06 11:58:02 +08:00 国内公司保存密码保存明文了吗? |
6 churchmice 2020-05-06 12:08:37 +08:00 他娘的为何要保存密码?你加盐 hash 一下不就好了吗 |
7 JJstyle 2020-05-06 12:20:56 +08:00 via iPhone 加狗头你以为 v 友就不喷你了吗 ) |
8 dallaslu 2020-05-06 12:33:29 +08:00 想知道用户密码并不一定要明文存啊,客户端传输过来时记录到任何地方都行。 |
9 yanqing07 OP @AngryMagikarp 我也觉得有点道理。系统是你的,用户使用了,那是不是有权处置用户的密码。貌似现在法律又没有这种限制。。。 |
11 ipwx 2020-05-06 14:09:56 +08:00 这是因为客户想要把这些用户导入到另一个商业系统。但是,原系统的密码都是 hash 后的密码。所以,现在希望用对称加密,这样就能还原密码了 ---- 下次用户登录的时候,通过验证了,就把内存中的密码用一下,但你们也不存储。这是最符合道德的做法。 |
12 msg7086 2020-05-07 04:16:52 +08:00 用对称加密保存用户密码,就等于不加密保存用户密码。 不加密保存用户密码的优缺点你应该都知道了。 用户导入另一个系统可以双系统同时认证,即登录的时候如果另一个系统里没有设置密码,则用原系统 hash 验证,然后直接将通过验证的原始密码设置进新系统。整个过程明文密码在内存里也就存在几毫秒的时间,基本是安全的。 如果客户的目的是得到明文密码,那么直接存明文密码就行了。毕竟明文密码终究是可得的,加密能有什么用呢。 |
13 yanqing07 OP |
14 lordofhollows 2020-05-07 12:07:46 +08:00 让客户提供一个密码,使用该密码生成非对称加密的私钥、公钥,用户密码使用公钥加密后存到数据库。 验证用户登录的时候,使用公钥加密用户密码后再与数据库中存的进行比对。 客户要导出数据时,提示输入密码,然后使用该密码和私钥将用户密码解密。 这样如果被拖库,也无法拿到用户密码明文。 缺点的话,如果客户把密码忘了,或者私钥丢了,用户密码就无法还原了。 |
15 yanqing07 OP @lordofhollows 这思路不错。谢谢你的建议 |