<?php /* Функция генерации паролей повышенной сложности */ function passwdGen($minLength = 8, $maxLength = 12, $maxSymbols = 2) { $symbolCount = 0; srand((double)microtime() * 1000003); for ($i = 0; $i < mt_rand($minLength, $maxLength); $i++) { do { $char = mt_rand(33, 126); $symbolCount += $isSymbol = (!in_array($char, range(48, 57)) && !in_array($char, range(65, 90)) && !in_array($char, range(97, 122))); if ($symbolCount <= $maxSymbols || !$isSymbol) { break; } } while (true); $passwd = sprintf('%s%c', isset($passwd) ? $passwd : NULL, $char); } return $passwd; } /* пример */ echo htmlspecialchars(passwdGen()); // QzS@<GW9u>#ypEfvgDh