Генерация уникального пароля в таблице MySQL

  • Автор темы Автор темы Vlad_R
  • Дата начала Дата начала

Vlad_R

Новичок
Генерация уникального пароля в таблице MySQL

Добрый день!

Прошу вас подсказать решение в следующей задаче.
В таблице MySQL имеется столбец с уникальным параметром "пароль". Данный пароль состоит из 5 знаков (латинские буквы и цифры, например: uyd93, 8973h и т.п.). Пароль генерируется рандомом для каждой новой записи в таблице.

Прошу вас посоветовать, каким образом лучше генерировать данный пароль (разумеется, чтобы он был уникальным в таблице)?
Самый простой вариант видится: генерируем рандомом и перед его добавление в таблицу проверяем уникальный ли он, уникален - добавляем, неуникален - генерируем новый, проверяем его и т.д. Но может существует более эффективное решение?
 
а логин ты на уникальность не проверяешь?
а при каждом заходе пользователя на сайт, пароль не проверяется?
или эти операции на 80 тыщах записей проходят незаметно, а проверить пароль один (ну два) раза при регистрации - уложит тебе нафиг всю базу?
 
Автор оригинала: *****
а логин ты на уникальность не проверяешь?
а при каждом заходе пользователя на сайт, пароль не проверяется?
или эти операции на 80 тыщах записей проходят незаметно, а проверить пароль один (ну два) раза при регистрации - уложит тебе нафиг всю базу?
Этот пароль используется не для идентификации пользователя. Ладно, спасибо, понял. Просто думал, может есть какая-нибудь подобная функция для работы с MySQL...

Да, а подскажи пожалуйста по самому коду генерации пароля. Сейчас используется:
PHP:
$letters=array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","1","2","3","4","5","6","7","8","9","0");
$length = 5;
for($i=1; $i<=$length; $i++)
{
  $pass.=$letters[rand(0,35)];
}
echo $pass;
Может сгенерировать случайный пароль из латинских букв и цифр можно проще?
 
Для генерации пароля, substr(md5($login), 0, 5) - даст строку из 5 символов состоящую из латинских букв и цифр.
 
Нельзя пароль делать уникальным

-~{}~ 14.05.09 21:45:

И идентифицировать по нему юзеров
 
букв, правда, будет маловато - всего 6.
Может сгенерировать случайный пароль из латинских букв и цифр можно проще?
слушай, ну куда тебе еще проще? наверное, можно. но сам-то код настолько простой, что это будут украшения, но ничего принципиального.
Да, можно код вылизывать. Но почему именно этот? Любую строчку кода можно сделать оптимальнее. Но не нужно этом заниматься без реальной надобности.
Просто думал, может есть какая-нибудь подобная функция для работы с MySQL...
какая еще функция? как ты ее себе представляешь? функция есть, SELECT password FROM table WHERE password='password'
какую ты можешь придумать функцию, которая не сведется к этой? чтобы мускуль выдавал сам, по предсказуемому алгоритму? и потом называть это паролем?
Если у тебя пароль СЛУЧАЙНЫЙ, то как его еще проверить на уникальность, кроме сверки с существующими? Даже если была бы в мускуле встроенная функция, то что она делала бы вместо того же селекта?
 
Автор оригинала: tashkentchi
Нельзя пароль делать уникальным

-~{}~ 14.05.09 21:45:

И идентифицировать по нему юзеров
Автор оригинала: Vlad_R
Этот пароль используется не для идентификации пользователя.
Автор оригинала: *****
букв, правда, будет маловато - всего 6.

слушай, ну куда тебе еще проще? наверное, можно. но сам-то код настолько простой, что это будут украшения, но ничего принципиального.
Да, можно код вылизывать. Но почему именно этот? Любую строчку кода можно сделать оптимальнее. Но не нужно этом заниматься без реальной надобности.

какая еще функция? как ты ее себе представляешь? функция есть, SELECT password FROM table WHERE password='password'
какую ты можешь придумать функцию, которая не сведется к этой? чтобы мускуль выдавал сам, по предсказуемому алгоритму? и потом называть это паролем?
Если у тебя пароль СЛУЧАЙНЫЙ, то как его еще проверить на уникальность, кроме сверки с существующими? Даже если была бы в мускуле встроенная функция, то что она делала бы вместо того же селекта?
Мы друг друга поняли. :)

Еще раз всем спасибо за предложения. Значит будет делаться так как и первоначально задумал.
 
> substr(md5($login), 0, 5)
зачёт

ТС, можно список логинов в студию и ссылочку на ресурс?
 
Вообще нельзя делать пароль уникальным. Уникальный пароль - ослабление безопасности. Тем более нельзя пользовать пароль, который вычисляется как функция от логина.
 
:)
Устал повторять, это не для идентификации пользователей на сайте!

Фактически это даже не пароль (как я выразился в начале), а просто уникальный идентификатор для каждой записи в таблице.
 
про индефекатор тема была буквально два дни назад. с решением.
 
Сверху