Warning: array_merge(): Argument #2 is not an array in /hsphere/local/home/magistr/codeismy.name/wp-content/plugins/wp-pagenavi/scb/Options.php on line 46

Генерация случайных паролей

Дата: Май 26, 2009

(6) комментариев

Многие пользователи придумывают обычно простые пароли, которые очень легко взломать, из-за чего они сами же и страдают. Но ведь совсем не обязательно давать пользователю вводить пароль самому, можно его генерировать автоматически, что повысит его защищённость.
В данной статье я и хочу показать как сделать генерецию случайного пароля на php
Метод заключается в том, что мы создаём символы с помощью функции chr() и rand()
Напишем простой php скрипт

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$min=6; // минимальное количество символов http://codeismy.name/
$max=8; // максимальное количество символов
$pwd="";
for($i=0;$i<rand($min,$max);$i++) //запускаем генератор случайных чисел
// Загрузка и проверка символов
{
$num=rand(48,122); //подбираем случайное значение для кнопки
if(($num > 97 && $num < 122))
{
$pwd.=chr($num); //создаём символ из значения кнопки
}
else if(($num

Случайно сгенерированый пароль будет храниться в переменой $pwd. Пользуемся :)

a




    6 комментариев на "Генерация случайных паролей"

    Денис сказал:
    29.05.2009

    А зачем в цикле столько условий, когда можно просто записать:
    $pwd.=chr($num); ?
    Разницы же никакой…

    И кстати, так как rand(48,122) и цикл будет идти 6-8 раз, то число получится не 6-8 символов, а 12-18 символов. Вроде так, если ошибаюсь, то поправьте меня.

    magistr_bender сказал:
    29.05.2009

    rand(48,122) вернёт к примеру 100
    дальше это значение идёт в chr() и соответственно станет одним символом а не двумя, так что никаких проблем тут нет и вернётся не 12-18 символов а как раз нужное число.
    а насчёт условий это… не все символы должны попасть просто

    Денис сказал:
    30.05.2009

    Все понял, извиняюсь, спасибо за разъяснения.

    Amin сказал:
    08.09.2009

    /* Функция генерации случайного пароля заданной длинны. Второй параметр — набо символов */
    function generate_random_password($length=15, $arr=’abcdefghijkmnoprstuvxyzABCDEFGHJKLMNPQRSTUVXYZ23456789_~!@#$%^&*’)
    { $length = (int)$length; $pass = «»; srand( ((int)((double)microtime()*1000003)) );
    if ($length == 0) { $length = 15; }
    for($i = 0; $i < $length; $i++) { $index = rand(0, strlen($arr) — 1); $pass .= $arr[$index]; }
    return $pass; }

    Sergey сказал:
    08.09.2009

    тоже красивый вариант. Даже лучше моего :)

    Максим сказал:
    24.09.2009

    Спасибо очень помогло. Надо было реализовать загрузку файлов юзерами на сервер. но при одинаковых именах картинок происходила перезапись файла. С помощью функции rename теперь картинки записываются с рандомными именами.

    Продолжение дискуссии на форуме: link


    Вы можете продолжить обсуждение этой статьи на форуме


    Имя : 
    Почта : 
    Сайт : 
    Комментарий : 

    Проверка комментариев включена. Прежде чем Ваши комментарии будут опубликованы пройдет какое-то время.

    Создание сайта - Echo-group Раскрутка сайтов