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

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

Задача в общем-то простая.

Генерация пароля javascript — пример кода

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

function generate(len)
{
   var ints =[0,1,2,3,4,5,6,7,8,9]; 
   var chars=['a','b','c','d','e','f','g','h','j','k','l','m','n','o','p','r','s','t','u','v','w','x','y','z'];
    var out='';
    for(var i=0;i<len;i++){
        var ch=Math.random(1,2);
        if(ch<0.5){
           var ch2=Math.ceil(Math.random(1,ints.length)*10);
           out+=ints[ch2];
        }else{
           var ch2=Math.ceil(Math.random(1,chars.length)*10);
           out+=chars[ch2];            
        }
    }
    return out;
}

Итак у нас есть функция generate, которая принимает 1 параметр — длинну пароля, эта функция и делает генерацию пароля javascript.

Сначала мы создаём 2 массива: массив всех цифр и массив всех символов англ. алфавита.
Декларируем пустую переменную для результата.
А затем в цикле от 0 до нужной длинный пароля (которую передаём параметром в функцию), выполняем следующее:

Получаем случайное число.
Если это число меньше 0.5, то получаем случайный номер элемента массива чисел.
Если это число больше 0.5, то получаем случайный номер элемента массива символов.
Добавляем соответствующий элемент к паролю.

На выходе мы получим случайны пароль заданной длинны.

Генерация пароля javascript — пример использования

Для использования этой функции нужно вызвать её и подставить полученный пароль в нужно место.
Например:

$('input').val(generate(12));

В результате получим в поле для ввода input пароль из 12-ти символов. Для выполнения этого конкретного примера потребуется jquery, но сама по себе функция генерации пароля работает на чистом javascript.

На последок даём ссылку на jsFiddle, для того, чтобы можно было пошаманить с кодом: jsfiddle.net/cpGEP/