-- Генерация цифро-буквенного пароля -- Параметры: -- sDelimiter : разделитель групп пароля. Может быть пустой строкой "" -- Остальные аргумены : если строка, то генерируется группа произвольных букв. Количество букв в группе - строка преобразованная в число. -- если число, то генерируется группа произвольных чисел. Количество чисел в группе равно аргументу. Math.PassGenerate = function (sDelimiter, ...) local sRet = ''; local sAlph = 'abcdefghijklmnopqrstuvwxyz'; if arg then for i = 1, #arg do if type(arg[i]) == 'string' then for i = 1, tonumber(arg[i]) do sRet = sRet .. String.Upper(String.Mid(sAlph, Math.Random(1, #sAlph), 1)); end elseif type(arg[i]) == 'number' then for i = 1, arg[i] do sRet = sRet .. Math.Random(1, 9); end end sRet = sRet .. sDelimiter; end end return String.TrimRight(sRet, sDelimiter); end -- генерируем пароль из 3х групп: 2 буквы, 3 цифры, 2 буквы. Группы разделяются дефисом. local sPass = Math.PassGenerate('-', '2',3,'2'); Dialog.Message("Notice", sPass, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1); |