как это, без ID? А как же вы тогда ищите пользователя?Духовность™.... без id.
А зачем там секретное слово?
md5 нельзя расшифровать, его можно подобрать перебором с заранее приготовленным словарем из популярных слов (паролей). Я не думаю, что кто-то когда-то сможет подобрать строку вида "555555dcdc35687989sdcsd", не говоря уже о более сложных комбинациях логина и пароля, нежели 555.а дальше только md5 (разве его нельзя точно так же расшифровать, если поймать снифером?
Так же как по ID, просто таблице где хранится базовая информация о пользователе (логин,пароль,емейл), добавляется поле с md5(логин+пароль+секретное слово). При запросе страницы, по этому же полю делается запрос в бд и находится соответствующий ему пользователь. Опять таки не знаю насколько это рационально, но получается, что в куках хранится только это хэшированное поле.как это, без ID? А как же вы тогда ищите пользователя?
Не рационально. Это бессмысленно - хранить избыточные данные - хэш от того, что можно сгенерировать в программе. Плюс выборка по первичному ключу - не нужно на дополнительное поле ставить индекс.Опять таки не знаю насколько это рационально, но получается, что в куках хранится только это хэшированное поле.
function encryptCookie($value){
if(!$value){return false;}
$key = 'тут секретное слово';
$text = $value;
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
return trim(base64_encode($crypttext)); //encode for cookie
}
function decryptCookie($value){
if(!$value){return false;}
$key = 'тут секретное слово';
$crypttext = base64_decode($value); //decode cookie
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $crypttext, MCRYPT_MODE_ECB, $iv);
return trim($decrypttext);
}
каков ваш вариант авторизации и автовхода?Понаворотят же... сессия, ключ автовхода, таблица одна, таблица другая... и этот человек еще спрашивает, зачем усложнять жизнь.
И все потому, что когнитивное бессознательное протестует против хранения хешей от пароля в куках.
Вы сами себе усложняете жизнь
ОМГ$crypttext = base64_decode($value); //decode cookie
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $crypttext, MCRYPT_MODE_ECB, $iv);
Пароль: 32 символа + логин: 20 символов + секретное слово 20 символов = 72 символа. Думаете надежно хранить пароль входа на сайт из 72 символов в хеше из 32?ЗЫ: хеш от пароля = хеш от набора данных, в который входит и хеш от пароля хранимый в базе
Думаю да. А что именно вас смущает?Пароль: 32 символа + логин: 20 символов + секретное слово 20 символов = 72 символа. Думаете надежно хранить пароль входа на сайт из 72 символов в хеше из 32?
где вы эти правила нашли?2. Как правило
последний ключ, который так же можно мешать в хеш
нарушается целостность данных. От того, что вы все подряд намешаете лучше никому не станет.5. Мешаем IP в хеш - тот же результат.
словечко то какое подобрали! простой пример: ajax.php - отдельный файл, который должен без дополнительных накладных расходов выдать информацию. авторизация в нем не нужна, но знать, пользователь вошел на сайт или нет - нужно. или вы запихаете туда весь движок?4. "использовать можно в любом php файле" - тут не говнокодят
6. Если вор украдет Memory
6. п.2.
интересная позиция...2. Как правило не нужно и вредно
может это и не к вам относится, но тут кто-то писал, что сессии и авторизация - разные вещи. а недостатком станет, когда сессий нет, а потом нужно делать сразу свой метод схожий по принципу с сессиями. Написать свои обработчики для сессии - это не проблема, причем все предусмотрено разработчиками.на больших сайтах очень быстро перестают использовать встроенный механизм сессий и используют свой
если честно, то я и сам не до конца понимаю, наверное первоначально было еще какое-то требование в тех. задании, которое потом куда-то и сплыло. но раз сделал, решил оставить, пока вижу только, что оно прячет ID пользователя.Зачем нужна эта ваша вторая криптованная строчка - я до сих пор не понял.
В здравом смысле. А так же в 99% ресурсов, которые требуют авторизации. Я ими пользуюсь с нескольких компьютеров без проблем и постоянных логинов. Проснитесь.где вы эти правила нашли?
Лолчто?нарушается целостность данных. От того, что вы все подряд намешаете лучше никому не станет.
Какая такая "целостность данных" внутри хеша? Лучше станет. Гораздо. Вы попробуйте 
Нам с вами не о чем говорить, если честнопростой пример: ajax.php - отдельный файл, который должен без дополнительных накладных расходов выдать информацию. авторизация в нем не нужна, но знать, пользователь вошел на сайт или нет - нужно. или вы запихаете туда весь движок?
Давайте вернемся к этой теме хотя бы годика через два.