Функция WP_GENERATE_PASSWORD() в WordPress: параметры, производительность, примеры

Функция WP_GENERATE_PASSWORD() в WordPress

Функция wp_generate_password() генерирует случайный пароль. Вы можете указать длину пароля и какие символы использовать.

Эта функция использует wp_rand(), что делает пароли гораздо менее предсказуемыми, чем если бы вы использовали такие функции, как rand() или mt_rand() из PHP.

Параметры функции

Заменяемая функция

Функция wp_generate_password() можно заменить в плагине. Это значит, что она работает только после загрузки всех плагинов, так что вы не можете использовать ее напрямую в коде плагина. Для этого нужно вызывать ее в хуке plugins_loaded или позже, например, в хуке init.

Замена функции

Если вы создадите функцию с таким же именем в вашем плагине, она заменит оригинальную.

Производительность

  • Время выполнения 1 раз — 0.000068 сек (очень быстро)
  • Время выполнения 50000 раз — 1.32 сек (быстро)
  • Используемая версия PHP: 7.0.4, WordPress: 4.4.2

Хуки

Функция использует хук random_password, который позволяет изменить сгенерированный пароль.

Возвращаемое значение

Функция возвращает строку — случайный пароль.

Использование функции

$password = wp_generate_password( $length, $special_chars, $extra_special_chars );
  • $length (int) — Длина пароля. Количество символов в пароле. По умолчанию: 12.
  • $special_chars (true/false) — Включить ли стандартные специальные символы: !@#$%^&*()? По умолчанию: true.
  • $extra_special_chars (true/false) — Включить ли дополнительные специальные символы. Используются при генерации секретных ключей и соль: -_ []{}<>~+=,.;:/?|`. По умолчанию: false.

Примеры

Вот несколько примеров генерации паролей:

echo wp_generate_password();                 // @iU!ZnjUWZsg
echo wp_generate_password( 15, false );      // YdD6j750MeiOkPa
echo wp_generate_password( 15, true, true ); // .WfvgX6`V^Vg:,_

Вы можете добавить свой собственный пример.

История изменений

  • С версии 2.5.0 — Функция была введена.

Код функции

Ниже приведен код самой функции wp_generate_password().


function wp_generate_password( $length = 12, $special_chars = true, $extra_special_chars = false ) {
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
if ( $special_chars ) {
$chars .= '!@#$%^&*()';
}
if ( $extra_specialchars ) {
$chars .= '-
[]{}<>~`+=,.;:/?|';
}

$password = '';
for ( $i = 0; $i < $length; $i++ ) {
    $password .= substr( $chars, wp_rand( 0, strlen( $chars ) - 1 ), 1 );
}

return apply_filters( 'random_password', $password, $length, $special_chars, $extra_special_chars );

}

Связанные функции

  • check_password_reset_key()
  • get_password_reset_key()
  • wp_check_password()
  • wp_get_password_hint()
  • wp_hash_password()
  • wp_set_password()

Безопасность сайта

  • balanceTags()
  • current_user_can()
  • force_balance_tags()
  • is_ssl()
  • wp_create_nonce()
  • wp_nonce_field()
  • wp_nonce_url()
  • wp_verify_nonce()

Эта информация поможет вам лучше понять, как использовать функцию wp_generate_password() в WordPress и защитить ваш сайт.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *