登录的时候为什么基本都需要用户名?

2015 年 8 月 14 日
 int64ago

直接一个密码不就可以了
如果可以做到每个人的密码是唯一的,登录的时候输入用户名就是多余的操作了
当然,我只是说登录的时候可以不输入,并没有说用户名本身没必要

所以,我看来唯一的难点就是密码唯一,其实做到这点也不会很难

我也考虑过撞库的情景,其实考虑下也不成立,撞(密码)库和撞(用户名+密码)库难度差异真的很大吗?

好吧,换一个情景,就是登录的时候只有一个框框,用户名和密码一起输入,把这里的(用户名和密码)当作(密码)不可以吗?--->仅仅是举个例子

你们怎么看这个问题的呢?

14259 次点击
所在节点    程序员
136 条回复
zjf
2015 年 8 月 14 日
Dollars...
publicID321
2015 年 8 月 14 日
你可以打开
https://blockchain.info/wallet/login (一个比特币钱包的网站)
然后在 密码的地方输入
df4b1055-3ee2-4846-a5db-3fb8e53823d7
登录即可

[0]: 这的确是用一个密码来登录。不需要你输入用户名,也不需要你记忆用户名(因为根本不是涉及用户名)

[1]: 它相当于二次验证:用一个密码 xxx-xxx-xxx-xxx ,来激发二次验证(给你的邮箱发邮件,只有能进入你的邮箱的人才能查看 which is basically you ),若验证成功则可登入。

[2]: 此处,二次验证的激发器是你的个人邮箱(用你的邮箱做二次验证,而不是 Google Authenticator 这种 动态密码的高级玩意 )

[3]: 如果换个角度,把传统的 「用户名-密码」看作静态密码,把 中国移动的短信密码 或 Google Authenticator 那种 当作动态密码,那么 LZ 说的这个办法 就相当于半动态密码。
安全性:动态密码 > 半动态密码 > 静态密码。

[4]: 方便性是相反的。方便性:动态密码 < 半动态密码 < 静态密码。

[5]: 破译和撞库的难度:
破解难度:动态密码 >> 半动态密码 > 静态密码

[6]: 其实还有一种办法:参考验证邮件链接

验证邮件链接:
假如你想注册一个网站,让你的邮箱作为ID,在每次注册网站之初,大部分网站都会给你的邮箱发一个邮件,让你验证邮箱,邮件里有一个链接,点这个链接就可以验证成功;必须在1天点击那个验证邮箱的链接,否则过期就失效了

这种 验证链接 就可以作为登录器啊:
1. 在登录某网站的时候,你输入你的 密码 ( password, token, identifier )
2. 某网站给你的邮箱发一封电子邮件,邮件里包括了一个链接,点这个链接就可以 以 logged in 的状态进入网站
3. 这个链接会在 5 分钟内自动失效
4. 你登录网站之后,如果无操作 5 分钟,则自动记录为 logged out 状态


P.S.
df4b1055-3ee2-4846-a5db-3fb8e53823d7 这串东西来自于网页
http://studybtc.com/2014/03/12/blockchain-info在线钱包使用方法/
publicID321
2015 年 8 月 14 日
网站的数据库里,只有 xxx-xxx-xxx-xxx ~ xx@xx.com ,根本没有和「登录凭证」有关的栏位。
即使被盗被脱库被公开,唯一泄露的就是 xx@xx.com

如果你没有关于「登录凭证」的设计,那么你的网站就永不怕黑客来脱库。当然安全性是高的、代价是方便性是低的。
imn1
2015 年 8 月 14 日
我觉得你还是进一步把你的设想阐述清楚好,而不是一句“V2 风气”
觉得我激动可以不理,但其他理智的人还很多,我不喜欢block,因为我觉得人与人大部分问题只是沟通不畅,如果连沟通都跳过了,那就只剩下互相不齿了

以你目前的描述,是难免让人“理解错误”的,因为都没提及身份识别的过程
你附言所提的“lastpass之类”是否就指证书、私匙之类?如果是,那就是另一种情况
例如 PT 种子,就是一种“私匙”,直接使用连密码都省了
使用私匙的情况下,手动输入密码反而成为二步验证,更安全了,性质完全不同
anubiskong
2015 年 8 月 14 日
你们这帮逗逼, 我看了30多层楼的评论, 真开始为了v2ex的用户质量担心了
PERFECTCN
2015 年 8 月 14 日
Active Directory

一直致力于打造这样的情形
dai269619118
2015 年 8 月 14 日
@anubiskong 是啊 ls逗逼真多 说的好像lz做错了什么事情一样的
ysoserious
2015 年 8 月 14 日
@int64ago 团购你会不会一个个号码去试?密码你想盗号的话 会不会一个个去试?
int64ago
2015 年 8 月 14 日
@borlee2567 如果密码是随机的且生成的方式正确,想试出来很难
可能大家很不习惯只有一个“密码”的登录方式(你们担心的那些问题我都懂,但是是可以规避的),但是如果是 LastPass 或者 1Password 用户,很可能有过这样想法的人就多一点了
crazycen
2015 年 8 月 14 日
忘记密码的时候怎么办呢?
ChanneW
2015 年 8 月 14 日
用指纹、掌纹,视网膜,脸,作为用户名的时候就可以只输密码了
wclebb
2015 年 8 月 14 日
其实我觉得可以有一个密码。5
这个密码叫:用户名密码。
什么意思呢?
比如一个框,里面写着:用户名+密码。
比如用户名我的 wclebb
然后我的密码是 ABCD1234
那么用户名密码:wclebbABCD1234
当然要改密码的话只能改 ABCD1234了,当然用户名可以改,前提是可以允许改。
一方面,这样的密码更方便,更好用,减少频繁使用鼠标或 Tab ,第二方面体验和安全兼有。

上面有个人说:abcdef……xyz
陌生人:abcdef……xy_

前提是,用户名必须不一样,那么密码即使一样也构成不了雷同密码的存在,从而完成了第二方面体验和安全兼有的存在。

想来想去,这不过是把两个框合并为一个框而已……
现有目前的技术,应该很简单吧……(别揍我,我是平面设计!)
cnnblike
2015 年 8 月 14 日
@wclebb 用户名密码还是有问题啊。两个用户,一个是wclebb,一个是wclebbA,刚好进去了,咋办?
cnnblike
2015 年 8 月 14 日
@wclebb 之前我输入wclebbABCD1234只能验证一个人,现在可以同时验证很多人了。
tinyhill
2015 年 8 月 14 日
要不要用户名,密码根本在于如何确定用户的唯一性,并且无法让别人猜解。
Valyrian
2015 年 8 月 14 日
楼主的思路不错,个人觉得可以这么搞:
0. 选择一个escape字符,比如星号"*"
1. 注册时需要用户名(需要唯一)和密码(不需要唯一)
2. 注册后返回字符串:s = encrypt(escape(username) + "*" + escape(password), public_key),用户可以保存在last pass、1password里。(escape后的username/password里不会出现星号,所以星号可以安全的当做分隔符用。)
3. 登录时用户提交这个字符串 s,可以解码为用户名,密码 (username, password) = decrypt(s, private_key)。(先用private_key解码,再按星号拆为username 和 password,最后在unescape。)

缺点就是返回的字符串不好记

缺点就是字符串不好记。。
wclebb
2015 年 8 月 14 日
@cnnblike 那也概率太低了,概率这么低的情况下用户名加个 A 和密码还能进
意味着,即使两个框用户名和密码分开,输入不也是一样登陆上去了嘛?
我只不过是把两个框合并了而已。

比如:abcd 用户名,不小心多写 e,但恰好这个用户名也和我一样,1Password随机密码i96mHfa*FJTsNzor&DNj
我的乖乖,还能碰在一起?不买彩票多可惜。
退一万步讲,即使密码:123456789
那……abcd123456789;abcde123456789
谁叫你密码这么简单……有没有密码都差不多。
Dowding
2015 年 8 月 14 日
楼主的思路其实和只要有用户名不用密码就能登录其实没本质区别吧
fluyy
2015 年 8 月 14 日
安全打击怎么做?
zander
2015 年 8 月 14 日
OpenID

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

https://v2ex.ih06.com/t/213084

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

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

© 2021 V2EX