Страницы

Поиск по вопросам

среда, 26 февраля 2020 г.

Уникально идентифицировать пользователя

#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 а если к нему добовлять один из выше перечисленных вариантов то всё будет ок.

Комментариев нет:

Отправить комментарий