您认为如何创建一个由email和hash等参数组成的查询字符串的验证链接?
password_hash的结果值,其中第一个参数的字符串是从带有固定盐字符串的数据库中选择的唯一id用户号。我也在考虑切换salt,但人们可以猜测给定电子邮件的id用户名,将其传递给password_hash,并为查询字符串获得一个有效的散列(即使password_hash自己自动添加了一个盐),所以我认为它是不安全的。
我想是这样的:
// the result of SELECT from the database (I use Mysql)
$id = '5';
// fixed salt string
$salt = 'xbrENiBq6kb87WrZYhxS';
$email = urlencode($email);
$key = $id . $salt;
$hash = urlencode(password_hash($key, PASSWORD_DEFAULT));
// the resulted querystring:
$url = "somesite.com/index.php?email=$email&hash=$hash";然后我会发送到用户的电子邮件。
拜托,你能告诉我,你觉得呢?非常感谢!
发布于 2016-10-21 17:43:53
取决于您的编码,您可以尝试混合各种类型的编码,以达到真正的价值。与数据库进行比较的最后结果必须是一个md5字符串,这样就不会丢失性能。
SELECT md5(your_field) FROM table很抱歉英语不太好。
https://stackoverflow.com/questions/40182472
复制相似问题