3 июня 2011 г.

Генератор паролей на jQuery

Сделал свой генератор паролей на jQuery. Не спрашивайте зачем :). Генерирует пароли любой длины. Можно управлять содержанием символов в пароле: включать/выключать цифры, большие латинские, маленькие латинские, специальные символы.

Данный код устарел. Обновленный - на гитхабе.

/**
 * Password Generator plugin for jQuery
 *
 * Copyright (c) 2011 .p.i.x.e.l. (www.pixel-tyumen.ru)
 *
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 * Usage example: $.password_generator({'count':12,'special':true})
 *
 */

$.extend({
    password_generator: function (init) {

        var init, options = {}, chars = '', result = '';

        if (init == 'undefined') {
            options.count   = 8;
            options.digits  = true;
            options.upper   = true;
            options.lower   = true;
            options.special = false;
        }
        else {
            options.count   = init.count;
            options.digits  = init.digits;
            options.upper   = init.upper;
            options.lower   = init.lower;
            options.special = init.special;
        }

        var genRangeChars = function (start, stop) {
            var start, stop, chars = '';
            for (var n = start; n <= stop; n++)
                chars += String.fromCharCode(n);
            return chars;
        }

        var buildChars = function () {
            if (options.digits)  chars += genRangeChars(48, 57);
            if (options.upper)   chars += genRangeChars(65, 90);
            if (options.lower)   chars += genRangeChars(97, 122);
            if (options.special) chars += genRangeChars(33, 47);
            if (options.special) chars += genRangeChars(58, 64);
            if (options.special) chars += genRangeChars(91, 96);
            if (options.special) chars += genRangeChars(123, 126);
        }

        buildChars();

        for (var i = 0; i < options.count; i++) {
            result += chars.charAt( Math.floor( Math.random() * chars.length ) );;
        }

        return result;

    }
});

1 комментарий:

Юрий комментирует...

Спасибо! Очень удобно и полезно.

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