Функция 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 и защитить ваш сайт.