使用用户名和生成时间为服务器请求生成安全令牌

时间:2015-01-21 14:02:15

标签: php security encryption token

我想为我的服务器生成安全令牌。 如果登录成功,用户将获得一个令牌,并且必须将其与每个服务器请求一起发送,而不是密码。 令牌在几个小时后过期,用户必须再次登录。

我想到了几个用于创建令牌的方法。我希望用户名和制作令牌的时间是其中的一部分。 我的第一个想法是:

用户名+; + servertime +; +随机字节

我将永远使用那些随机字节,孔串长度为64个字符。 下一步是加密它(我想到了AES256)。 但由于用户名总是令牌的一部分,黑客更容易获得加密密钥或?将用户名放在令牌中是一个坏主意吗?

所以我想到24小时一次密钥,如果用户发送旧令牌,我就无法重新检查他的名字和系统时间,所以我知道令牌已经过时了。

如何“专业”代币工作?我难以理解令牌的想法吗?

1 个答案:

答案 0 :(得分:1)

您所描述的内容称为SESSION。他们是整洁的东西。 您可以在每个页面启动会话,然后跟踪会话存储中的变量,以通过在数据库表中存储随机生成的令牌来确保其有效。每次登录后,更新数据库令牌,这将使该用户的所有其他令牌无效。

http://php.net/manual/en/features.sessions.php