Помогите сгенерировать сложный пароль :D



  • Есть действия случайная строка:
    alt text
    Запихал сюда кучу символов. Длина пароля из переменной Random (6-14)

    Нужно сделать проверку:
    1)Содержит ли случайный пароль как минимум 2 цифры.
    2)Содержит ли пароль как минимум 2 заглавные буквы (причем нельзя подряд). Пример ft51TM51
    3)Содержит ли пароль как минимум 2 не заглавные буквы.



  • http://qaru.site/questions/2277682/javascript-validation-issue-for-password
    Гуглим любой js код вализации и практически полностью копипастим себе ) Подгоняем переменные и все готово )



  • @qwaros Всё четко

    [[RANDOM_PASSWORD]].match(/\d/g) === null || [[RANDOM_PASSWORD]].match(/[A-Z]+/g) === null || [[RANDOM_PASSWORD]].match(/[a-z]+/g) === null
    


  • @fastspace said in Помогите сгенерировать сложный пароль :D:

    @qwaros Всё четко

    [[RANDOM_PASSWORD]].match(/\d/g) === null || [[RANDOM_PASSWORD]].match(/[A-Z]+/g) === null
    

    толкьо не || а скорее && в вашем случае. т.к у вас условие или цифры или верхний регистр букв )



  • @qwaros Это в цикле. Как только любое условие в цикле не соответствует, то он цикл новый пароль генерирует.
    Выйдет из цикла только когда пароль будет соответствовать всем условиям.



  • @fastspace said in Помогите сгенерировать сложный пароль :D:

    @qwaros Это в цикле. Как только любое условие в цикле не соответствует, то он цикл новый пароль генерирует.
    Выйдет из цикла только когда пароль будет соответствовать всем условиям.

    Это может довольно долго выполняться если случайность будет генерить много раз подряд неподходящие пароли ) Вот так будет правельнее по вашим условиям -

    var leignt = 12 //длинна пароля
    var letter = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","r","s","t","u","v","x","y","z"]
    var i = 0
    var ii = 0
    var tmparr = []
    var randompass = ""
    var maxrandompass = ""
    
    while(i < leignt){
        tmparr = [letter[Math.floor(Math.random() * 23)], Math.floor(Math.random() * 9), letter[Math.floor(Math.random() * 23)].toLocaleUpperCase()]
        randompass += tmparr[Math.floor(Math.random() * 3)]
        i += 1
    }
    while(ii < leignt / 3){
    	maxrandompass += letter[Math.floor(Math.random() * 23)]
    	maxrandompass += Math.floor(Math.random() * 9)
    	maxrandompass += letter[Math.floor(Math.random() * 23)].toLocaleUpperCase()
    	ii += 1
    }
    log(randompass)
    log(maxrandompass)
    


  • This post is deleted!


  • Тестовый скрипт, скиньте, будьте любезны.





  • @fastspace на

    var_isset = function (string) {
        try {
            eval('if (typeof ' + string + ' !=="undefined"){var result = true}else{var result = false}')
            return result
        } catch (e) {
            fail(e)
        }
    }
    is_num = function (string) {
        try {
            var result = isNaN(string)
            if (result) {
                var answer = false
            } else {
                var answer = true
            }
            return answer
        } catch (e) {
            fail(e)
        }
    }
    num = Math.floor(Math.random() * (parseInt(14) - parseInt(6) + 1)) + parseInt(6)
    agf_cryptopass = function (num) {
        if (var_isset(num) == false) {
    
        };
        var data = Number(num)
        if (is_num(data)) {
            var alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`~!@#$%^&*()_-+=<>?'}{]["
            var content = Array(data).join().split(',').map(function () {
                return (alphabet).charAt(Math.floor(Math.random() * alphabet.length));
            }).join('')
        };
        return content
    }
    
    
    

    ps Для новичков ЭТО НЕ САМ ГЕНЕРАТОР ОН САМ НИЧЕГО НЕ СДЕЛАЕТ это функция при
    подаче на нее вы получите пасс. проще показать
    0_1568745862310_2019-09-17_224406.png
    переработал чтоб работало,
    0_1568745938022_test_script.xml
    а вообще это куски библитеки
    @PRAGMATIK
    aurora
    криптостойкий=) в оригинале у прагматика он воопще 16 length всегда.
    Так что если что все благодарности ему, мопед не мой.(почти с)
    upd если мне например надо что бы что больше и чаще выпадало я просто меняю входящую строку по необходимости, роботу безразлично если там будет 2 б например.



  • @tts9 Спасибо, но я уже как пол года регаю аки для магазинов со скриптом Qaros :D



  • @fastspace Даров, та я понял,.. потом. Я сначала тестовый скрипт дал. Там видно правленно. И до мну дошло что тебе это уже и на над)) а у новичка не пойдет моя абрабракабра пришлось править и скрипт делать.
    зы но про строку я серьезно, только если длинна меняется и она фиксированная то учесть


Log in to reply