【发布时间】:2015-11-18 20:08:45
【问题描述】:
我决定在最近的一个项目中从双重密码身份验证开始。 登录详细信息是:电子邮件、密码、密码。
密码(最少 8 个字符)和秘密(最少 6 个字符)是两个密码。
为了使破解它们尽可能困难,我认为我应该使用 openssl 加密用户名,并使用两个密码作为加密密钥和初始化向量。
openssl_encrypt($email, 'aes-256-cbc', $password, false, $secret)
这是安全的还是我只是想出了一个坏主意?
【问题讨论】:
-
看看
password_hash,它是单向哈希,php.net/manual/en/function.password-hash.php -
这需要我存储密码。我的想法是不存储密码,只存储基于它们的加密用户名
-
是什么让您认为两个密码比一个更好?这不是两因素身份验证,通常意味着以下两个:您知道的东西(例如:密码)、您拥有的东西(例如:RSA fob)或您的身份(例如:指纹)。
-
我的 SME 提到双密码更安全,但前提是您有双重监护权。
-
是的,双重监管可以大大提高安全性,但即使没有双重监管,您仍然会强制用户提供更多角色,从而增强实力。 8 个字符的密码不如 8 个字符中的两个安全。这使得构建彩虹表变得非常困难。
标签: php security authentication passwords