从 MD5 哈希创建会话 ID

Creating Session ID from MD5 Hash

目前我有这个:

$time = time();
$hash = md5($key . $time);

但是如何根据哈希创建 $_SESSION['']

我不明白为什么这行不通。

$time = time();
$hash = md5($key . $time);
$_SESSION['time'] = $hash;

然后尝试回显它来测试:

echo $_SESSION['time'];

或存储在您自己的变量中

$mysession = $_SESSION['time'];

试试:

 session_id($hash);
 session_start();

您可以在手册中找到解释:

http://php.net/manual/en/function.session-id.php

如果您的目标是针对 session fixation attacks, you can use session_regenerate_id 使会话更安全并在每次 x 请求后重新创建一个新的 session_id:

$_SESSION['last_time_generated']++;

if ($_SESSION['last_time_generated'] > 10) {
    $_SESSION['last_time_generated'] = 0;
    session_regenerate_id(true);
}