WordPress at a glance

wp_generate_password() WP 1.0

Generates a random password drawn from the defined set of characters.

Uses wp_rand() is used to create passwords with far less predictability than similar native PHP functions like rand() or mt_rand().

This is a pluggable function, and it can be replaced by a plugin. It means that this function is defined (works) only after all plugins are loaded (included), but before this moment this function has not defined. Therefore, you cannot call this and all functions depended on this function directly from a plugin code. It must be called on plugins_loaded hook or later, for example on init hook.

Function replacement (override) — in a plugin you can create a function with the same name, then it replace this function.

Works based on: wp_rand()
✈ 1 time = 0.000068s = very fast | 50000 times = 1.32s = fast | PHP 7.0.4, WP 4.4.2
Hooks in function
Return

String. The random password.

Usage

wp_generate_password( $length, $special_chars, $extra_special_chars );
$length(int)
The length of password to generate.
Default: 12
$special_chars(true/false)
Whether to include standard special characters.
Default: true
$extra_special_chars(true/false)
Whether to include other special characters. Used when generating secret keys and salts.
Default: false

Code of wp generate password: wp-includes/pluggable.php WP 5.2

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

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

	/**
	 * Filters the randomly-generated password.
	 *
	 * @since 3.0.0
	 *
	 * @param string $password The generated password.
	 */
	return apply_filters( 'random_password', $password );
}

Related Functions

From tag: password

More from tag: Site security (safety)

No comments
    Hello, !     Log In . Register