2005-05-30

Генерация паролей

Очень часто приходиться генерировать пароли, и казолось бы что тут сложного? Написал себе функцию и генерируй на здоровье. Для генерации обычно берут цифры от 0 до 9 и латинцкие символы от A до Z. И редко кто задумывается о том что в некоторых шрифтах, с некоторой слепотой 0 от O или o никак не отличить. Или 1 от l. Так сидеть, и мучаются пользователи, гадая какой это символ. Поэтому моя функция генерации пароля использует слегка обработанный набор символов для генерации, так что бы похожих символов небыло.

Собственно сам код:

function gen_passwd ( $len) {
    $res = '';
    $useChars = '23456789ABCDEFGHKMNPQRSTUVWXYZabcdefghkmnpqrstuvwxyz';
    $useChars .= $useChars;
    for ($i = 0; $i < $len; $i++ ) {
       $res .= $useChars[mt_rand ( 0, strlen ( $useChars)-1)];
    }
    return $res;
}
PHP, Web — Сергей Куракин @ 11:33
Уже комментировало (5) »
  1. Комментиров(ал|ала), zlobaNo Gravatar — 2005-06-01 @ 07:10

    таким образом получаются пароли, которые пользователю невозможно запомнить.
    нужен какой-то другой принцип. например (не проверял, просто идея)

    function gen_passwd ( $len) {
    $res = ”;
    $useChars[1] = ‘aequy’;
    $useChars[2] = ‘ldcxthprplcl’;
    $useChars[3] = ‘aequy’;
    $useChars[4] = ‘bcdfghkmnprstvwxz’;
    $count=0;
    for ($i = 0; $i 4) $count=1;
    $le=1;
    if ($count==2) $le=2;
    $tot = strlen ( $useChars[$count])/$le);
    $my=mt_rand(0,$tot-1);
    $res .= $useChars[$count].substr($my*$le,$le);
    }
    return $res;
    }

    Приблизительно так. Тогда и пароли будут человеческими :)
    ald
    $useChars[1] = ‘aequy’;
    $useChars[2] = ‘ldcxthprplcl’;
    $useChars[1] = ‘aequy’;
    $useChars[3] = ‘bcdfghkmnprstvwxz’;

    aldebethucl или там eprekecl. В общем, генерацию нужно основывать на слогах. Иначе пользователь рад этому не будет.

    //zloba

  2. Комментиров(ал|ала), ZaZaNo Gravatar — 2005-06-01 @ 09:53

    Лично я смотрю с такой точки зрения: Если не можешь запомнить пароль - поменяй на свой, который тебе более удобен, а то всё равно забудешь. Там более его обязательно надо поменять на свой.
    Вообще, в мои обязаности входит выдать достаточно защищённый пароль. Как с ним будет вести себя пользователь - меня немного волнует меньше. Дальше уже он отвечает за свою-же безопастность.

  3. Комментиров(ал|ала), zlobaNo Gravatar — 2005-06-04 @ 14:25

    Понимаешь, если ты сделал пароль, который нужно менять, то человек уже с 95% вероятностью поставит небезопасный пароль. Поэтому нужно предлагать что-то запомнить. Хотя и можно отмахнуться что это, мол, не мешает и дальше будет вина пользователя.

  4. Комментиров(ал|ала), ZaZaNo Gravatar — 2005-06-16 @ 10:37

    Согласен, но поменяет он его в любом случае - пароль хоть и удобней, но чужой. Юзер свой собственный теряет/забывает часто, а тут - чужой. В любом случае, пока я работал в тех. поддержке - часто звонили и просили напомнить пароль - даже если сами меняли на что-либо своё - привычное. Далее, очень часто пользователи держат свой пароль в электропочте, но не знают, что пароль можно просто скопировать оттуда, а набирают его, и в случае если там хитрый шрифт - часто путают символы ноля и О, л(l) и 1, И(I) и л(l) (естественно в латинице). Слепые, не внимательные, шрифт какой… Так что если соединить два алгоритма - будет совсем не плохо.
    Говорят, от мелкософта было более навороченное предложение с генерацией паролей.

  5. Комментиров(ал|ала), zlobaNo Gravatar — 2005-06-25 @ 14:24

    В OS X встроена генерилка паролей =)

RSS комментариев. TrackBack URI

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