Генерация паролей

Функция генерации паролей повышенной сложности

  1. <?php
  2. /* Функция генерации паролей повышенной сложности */
  3. function passwdGen($minLength = 8, $maxLength = 12, $maxSymbols = 2)
  4. {
  5. $symbolCount = 0;
  6. srand((double)microtime() * 1000003);
  7. for ($i = 0; $i < mt_rand($minLength, $maxLength); $i++)
  8. {
  9. do
  10. {
  11. $char = mt_rand(33, 126);
  12. $symbolCount += $isSymbol = (!in_array($char, range(48, 57)) && !in_array($char, range(65, 90)) && !in_array($char, range(97, 122)));
  13. if ($symbolCount <= $maxSymbols || !$isSymbol)
  14. {
  15. break;
  16. }
  17. }
  18. while (true);
  19. $passwd = sprintf('%s%c', isset($passwd) ? $passwd : NULL, $char);
  20. }
  21. return $passwd;
  22. }
  23. /* пример */
  24. echo htmlspecialchars(passwdGen()); // \QzS@<GW9u>#ypEfvgDh


  14.01.24 / 13:40 | PHP |   58 | 1   0