这儿有一个伪需求

2017-08-23 23:31:42 +08:00
 Victor215

现在有一个伪需求,按道理来讲是不可能提出来的,但是也可以想想。

需求: 设计一个密码储存的方式可以支持两个密码登陆同一个账户,但是密码的储存只能用一个字段。

直接能想到的就是可以把两个密码用分隔符连在一起,但是除了这种方式还有什么更好的方案么?有没有啥数学上的算法是支持的?

4567 次点击
所在节点    程序员
33 条回复
tscat
2017-08-24 09:40:23 +08:00
只能间接的存两个密码
lixiangzaizheli
2017-08-24 09:41:00 +08:00
一楼挺好的 除了数据量会大一点 验证后识别为同一用户就好了
ruchee
2017-08-24 09:47:23 +08:00
单独建表比较合理,防备以后有可能的扩展需求
hekunhotmail
2017-08-24 09:47:36 +08:00
分隔符 存一个字段里 然后代码处理喽
whatafuck
2017-08-24 09:50:03 +08:00
哈哈,其实就是,主密码和观看密码,主密码有一切权限,观看密码只能观看不能操作。。right ?
jyf
2017-08-24 09:51:36 +08:00
没有什么存储上的问题 一般大系统的用户登录都只是根据账户密码来获取一个认证与对应的用户 id 而已

假如你的 认证表里的字段有三个 比如 alias, password, uid ,alias 是账户名称, password 是密码 uid 是用户 id

把 alias,password 做个联合的 unique 那这个直接存储即可 没有啥难点
ioth
2017-08-24 09:51:37 +08:00
你们公司负责需求的是伪娘吗?
wweir
2017-08-24 09:58:08 +08:00
那么问题来了,真的只要存两个密码吗?
真?那签个需求不变动协议,不为别的,就为计算工作量+方便打脸
假?那要存几个密码?
有固定数字,那就该用固定的列来存,该撕逼撕逼,该改表结构改表结构。
不知道要存几个,那还是老老实实字符拼接吧,其它实现未必就简单。记得拼接字符用不可作为密码的字符
wq2016
2017-08-24 10:13:21 +08:00
密码和用户字段互换
密码作为真正的用户名字段
而用户名作为密码字段,用户名可以多个
Victor215
2017-08-24 10:25:05 +08:00
想了想,看来还是再来一张映射表是最佳的选择。
msg7086
2017-08-24 23:38:07 +08:00
@lrh3321 没错,就是子账号。但用户名是相同的,只有密码不同。
msg7086
2017-08-24 23:39:55 +08:00
@wweir 存 Hash 不需要考虑作为密码的字符……
wweir
2017-08-25 07:02:11 +08:00
@msg7086 单个密码可以不考虑。存多个密码拼接的时候,没法存拼接后的密码的 hash,得存 hash 后拼接的字符串。这样就得考虑长度了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/385312

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX