| Подойдет ли подобная схема для ключа к авторизации через куки?
<?php
// функция генерации строки случайной длины от 16 до 32
function gen()
{
$arr = array('a','b','c','d','e','f',
'g','h','i','j','k','l',
'm','n','o','p','r','s',
't','u','v','x','y','z',
'A','B','C','D','E','F',
'G','H','I','J','K','L',
'M','N','O','P','R','S',
'T','U','V','X','Y','Z',
'1','2','3','4','5','6',
'7','8','9','0','$','-',
'@','#','^','&','?','`');
$rand_a=rand(16,32);
$pass="";
for($a=0;$a<=$rand_a;$a++)
{
$index=rand(1,(count($arr)-1));
$pass.=$arr[$index];
}
return $pass;
}
// генерация случайного количества строк от 16 до 32
$rand_b=rand(16,32);
for($b=0;$b<=$rand_b;$b++)
{
$temp_key[$b]=gen();
}
// генерация ключа из массива строк
$key="";
$script_key="http://softtime.ru/forum/addtheme.php?id_forum=1";
foreach($temp_key as $value)
{
$key=md5($key.$value.$script_key);
}
// копия массива строк для записи в базу
$serialize_key=serialize($temp_key);
|
После чего логин пользователя и сгенерированный ключ записываются в куку. При попытке зайти на сайт по автологину, из базы достается $serialize_key, из него снова генерируется ключ и сравнивается с ключом куки. | |