/** * Strong Password Generator by Zetex. * This file is provided as is (no warranties). * * A strong password: * ... has lowercase letters * ... has uppercase letters * ... has numbers * ... has symbols, such as ` ! " ? $ ? % ^ & * ( ) _ - + = { [ } ] : ; @ ' ~ # | \ < , > . ? / * ... is not like your previous passwords * ... is not a keyboard pattern, such as qwerty, asdfghjkl, or 123456789 */ #if defined _password_generator_included #endinput #endif #define _password_generator_included stock generate_strong_password(output[], length) { for (new i = 0; i < length; i++) { output[i] = random_symbols(); } return length; } stock random_symbols() { static output; switch (random_num(0, 3)) { case 0: output = random_lowercase_letter(); case 1: output = random_uppercase_letter(); case 2: output = random_number(); case 3: output = random_punctuation(); } return output; } stock random_lowercase_letter() { return random_num('a', 'z'); } stock random_uppercase_letter() { return random_num('A', 'Z'); } stock random_number() { return random_num('0', '9'); } stock random_punctuation() { static output; switch (random_num(0, 3)) { case 0: output = random_num('!', '/'); case 1: output = random_num(':', '@'); case 2: output = random_num('[', '`'); case 3: output = random_num('{', '~'); } return output; }