我正在处理的网站password_hash()
以散列形式存储电子邮件地址
我知道它适用于passowrds,但该网站已经启动,所以不会再回头了。
现在,当新用户尝试注册时,我需要检查用户正在使用的电子邮件地址是否已存在于数据库中。但由于所有电子邮件地址都经过哈希处理,我不能简单地使用:
$mail_query = mysql_query("SELECT email FROM userbase WHERE email='$email'");
$mail_num = mysql_num_rows($mail_query);
if ($mail_num != 0) {
$error = 'This email address is already in use.';
有什么办法吗?
该网站使用旧的MySQL API。
答案 0 :(得分:1)
唯一的方法,但非常baaaad是获得AAAAALLLL电子邮件并检查所有...抱歉,甚至不记得MySQL_ *函数,但首先你需要做这样的查询:
SELECT email FROM userbase
然后,当你收到所有电子邮件时,我会在每封电子邮件中循环并使用password_verify
...所以在你的循环中你应该有类似的东西:
if(password_verify($email,$hash)) {
echo "Email is already in use!";
break;
}
就是这样。祝好运。但是我不喜欢这样的哈希:如果你需要提醒用户密码怎么办?