| PARSER | примеры | Генератор восьмизначного пароля |

faq | авторы | документация |  | в действии | куда говорить
жаргон |  | скачать |  | примеры | форум

> Генератор восьмизначного пароля.

> Рассмотрена генерация пароля с использованием операторов ^mid и ^random и массива символов.

> Макрос engine выдергиват по одному символу (^mid) из переданного ему в качестве параметра множества ($chars).

> Номер символа (^length) который нужно достать из множества вычисляется случайным образом (^random).

> После символ добавляется в переменную passwd

>      @engine[chars]
>      ^var[passwd;.;^mid[$chars;^random[^length[$chars]];1]]
>      @end

> В зависимости от параметра макроса generate, движком (^macro[engine]) будут обработаны те или иные символы (гласные/согласные/цифры)

> Если макрос будет вызван без параметров, то допустимыми будут символы из DEFAULT.

>      @generate[type] определяются допустимые символы
>      ^switch[$type;
>             ^case[vowels;^macro[engine;aeiouy]]
>             ^case[consonants;^macro[engine;bcdfghklmnprstvxz]]
>             ^case[digits;^macro[engine;1234567890]]
>             ^case[DEFAULT;^macro[engine;qwertyuiopasdfghjklzxcvbnm1234567890]]
>      ]
>      @end

> В макросе main генерируем пароль состоящий из пяти букв и трех цифр.

>      @main
>      ^for[i;1;5;
>             ^rem[  Проверяем на чет/нечет  ]
>             ^rsplit[^eval[^var[i]/2;%f];.]

>             ^rem[
>             	Проверка на четность/нечетность текущий итерации:
>     	        Если остаток от деления (номер итерации делим на 2) больше нуля, значит число нечетное.
>         	    Чередуем гласные и согласные (четная/нечетная итерация) для лучшей запоминаемости пароля.
>             ]

>             ^if[^item[0]>0;
>                     ^macro[generate;consonants]
>             ;
>                     ^macro[generate;vowels]
>             ]
>      ]

>      ^rem[  Добавляем в конец уже готового пароля из 5 букв еще 3 цифры  ]
>      ^for[i;1;3;
>             ^macro[generate;digits]
>      ]
>      ^var[passwd]
>      @end

> Результат работы макроса: molep648

E-mail: mailbox@parser.ru | Copyright © 1997-2001 | Студия Артемия Лебедева