[英]How to Store Passwords in Databases and Cookies (PHP/MySQL)
读完这篇文章和其他许多人在那里如何不存储在数据库和饼干密码,我现在不知道我应该怎么办呢?
到目前为止(在阅读了一番之后),我想出的是明文用户密码,用盐填充,直到它填满512位(64字节=> 64个字符,因为页面是非Unicode的) ,然后做
$pwhash = hash('sha512', $saltedpw);
for ($i=0; $i<1000; $i++)
$pwhash = hash('sha512', $pwhash);
然后,我将(UserName,HashedPw,Salt)存储在数据库中,但是我对cookie采取什么措施(以识别在会话期满后仍希望保持打开状态的用户)?
首先,调用hash
1000次无济于事,一次就足够了。
为了记住用户在cookie中的登录,您有两个选择:
在数据库存储区中,仅密码哈希码和cookie应该包含会话ID,通常称为SID
。 在另一个表中,存储所有SID
(带有userID
),仅此而已。 但是不要忘了PHP已经内置了非常简单和有用的会话api,请更好地使用它:)
您不必在Cookie中存储用户密码。 您可以生成一个长的随机字符串(类似于sessionid),该字符串存储在数据库和cookie中。 您可以在会话期满和用户回来时每次更改该字符串。 当用户访问站点时,您可以对照数据库检查cookie值,并查看用户是谁。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.