当用户在我的网络应用程序中创建一个帐户时,我会生成一个GUID并使用前8个字符作为密码,然后通过电子邮件发送。
使用GUID作为密码时,我是否存在安全隐患?我已经查看了问题Are GUIDs good passwords?
,但该问题与个人密码有关,而不是随机/生成的密码。理想情况下,用户可以根据需要登录并更改密码。
答案 0 :(得分:8)
使用GUID
s作为密码是一个非常糟糕的主意。 GUID
以非常可预测和明确定义的方式生成。或者换句话说,如果有足够的信息,它将允许攻击者预测其他用户的密码。
可预测且定义明确与您在密码生成器中所需的完全相反。
答案 1 :(得分:4)
是的,除非您确切知道如何构建GUID。例如,某些GUID将主机的MAC地址捆绑到GUID中。如果您碰巧使用这些位,则会损害“随机”密码的大量位空间。
简单地说,GUID可能是唯一的,但它们不一定是随机的。
答案 2 :(得分:2)
“WinAPI GUID生成器的密码分析表明,由于V4 GUID的序列是伪随机的;在充分了解内部状态的情况下,可以预测先前和后续的值。” http://en.wikipedia.org/wiki/Globally_unique_identifier
我不会用它。毕竟,使用随机数生成器并不难,这些生成器被设计为尽可能随机,而不是试图保证全局唯一性。
答案 3 :(得分:1)
此article表示不要使用它。
答案 4 :(得分:1)
GUID有多种口味;有些部分具有可预测的部分。
另一方面,生成随机数非常非常容易。
为什么在安全替代方案随时可用时使用可疑技术?
答案 5 :(得分:0)
使用GUID的一部分,甚至整个事情都是一个非常糟糕的主意。即使大部分都是随机的,也不能保证任何特定的部分都是。
我不确定使用GUID的哈希会有多少麻烦,或者更好的是将GUID与其他一些随机源组合在一起的哈希(例如,可能会在程序启动时散列哈希值,然后通过返回前一个哈希的一部分哈希值和一个新的GUID来生成密码。如果在GUID生成中存在任何随机性,则散列的熵应该随着每次迭代而增加。请注意,密码不应显示整个哈希值;其中一些应该作为秘密的内部状态保存。