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