#python #django
Всем добрый день! Появилась необходимость уникально идентифицировать пользователя, притом не испоьзуя регистрацию. Т.е. пришел анонимный юзер - и нужно записать ему в сессию какой-то идентификатор. Есть идея писать рандомную строку, но вдруг эти строки совпадут у разных пользователей(шанс хоть мизерный, но есть)? Отсюда вопрос, какие уникальные данные можно получить от пользователя, что бы потом их зашифровать и записать в сессию? Приветствуются все здравые соображения, спасибо :)
Ответы
Ответ 1
Строить хэш от IP + timestamp + случайное число. Использовать UUIDОтвет 2
Если ты берешь хэш от чего-то, то в любом случае возможна коллизия. А чем не вариант выдавать просто последовательные числа?Ответ 3
http://javascript.ru/unsorted/id - идеи были. Правда, не по отношению к питону.Ответ 4
Можете по приходу юзера, запоминать Unix время, в секундах. И кодировать его либо в base64, либо в md5=)Ответ 5
В базе данных создать поле которое будет содержать число. Посетитель зашел на сайт, делаем UPDATE на +1 и возвращаем число. Склеиваем полученое число IP и time(), шифруем в md5. А еще лучше шифровать в base64 а потом md5.Ответ 6
Ради бога , придумайте сами. Там миллионы вариантов на уникальный идентификатор. Знайте одно, md5 не повторяется. Берите unix time прихода, как говорилось выше, хешируй, но когда впихиваешь в базу, проверяй нету ли там такого ид, если есть просто сделай md5(uid+time) uid того который уже есть и вуаля.Ответ 7
А как насчет тех кто ходит с работы, у них часто будут одинаковые IP в одной оргонизации. Единственное что уникально почти у всех ПК это mac а если к нему добовлять один из выше перечисленных вариантов то всё будет ок.
Комментариев нет:
Отправить комментарий