wp_check_password

函式
wp_check_password ( $password, $hash, $user_id = '' )
引數
  • (string) $password Plaintext user's password.
    Required:
  • (string) $hash Hash of the user's password to check against.
    Required:
  • (string|int) $user_id Optional. User ID.
    Required:
    Default: (empty)
返回值
  • (bool) False, if the $password does not match the hashed password.
定義位置
相關方法
wp_set_passwordwp_hash_passwordwp_generate_passwordwp_get_password_hintcheck_password_reset_key
引入
2.5.0
棄用
-

wp_check_password:這是一個檢查密碼是否正確的函式。它可以用來在登入或更改密碼時驗證使用者的密碼。

根據加密的密碼檢查明文密碼。

保持舊版本和使用PHPass庫的新cookie認證協議之間的相容性。$hash引數是加密的密碼,該函式將加密後的純文字密碼與已經加密的密碼進行類似的比較,看它們是否匹配。

對於與其他應用程式的整合,這個函式可以被覆蓋,而使用其他包的密碼檢查演算法。

function wp_check_password( $password, $hash, $user_id = '' ) {
		global $wp_hasher;

		// If the hash is still md5...
		if ( strlen( $hash ) <= 32 ) {
			$check = hash_equals( $hash, md5( $password ) );
			if ( $check && $user_id ) {
				// Rehash using new hash.
				wp_set_password( $password, $user_id );
				$hash = wp_hash_password( $password );
			}

			/**
			 * Filters whether the plaintext password matches the encrypted password.
			 *
			 * @since 2.5.0
			 *
			 * @param bool       $check    Whether the passwords match.
			 * @param string     $password The plaintext password.
			 * @param string     $hash     The hashed password.
			 * @param string|int $user_id  User ID. Can be empty.
			 */
			return apply_filters( 'check_password', $check, $password, $hash, $user_id );
		}

		// If the stored hash is longer than an MD5,
		// presume the new style phpass portable hash.
		if ( empty( $wp_hasher ) ) {
			require_once ABSPATH . WPINC . '/class-phpass.php';
			// By default, use the portable hash from phpass.
			$wp_hasher = new PasswordHash( 8, true );
		}

		$check = $wp_hasher->CheckPassword( $password, $hash );

		/** This filter is documented in wp-includes/pluggable.php */
		return apply_filters( 'check_password', $check, $password, $hash, $user_id );
	}
endif;

if ( ! function_exists( 'wp_generate_password' ) ) :
	/**
	 * 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()`.
	 *
	 * @since 2.5.0
	 *
	 * @param int  $length              Optional. The length of password to generate. Default 12.
	 * @param bool $special_chars       Optional. Whether to include standard special characters.
	 *                                  Default true.
	 * @param bool $extra_special_chars Optional. Whether to include other special characters.
	 *                                  Used when generating secret keys and salts. Default false.
	 * @return string The random password.
	 */

常見問題

FAQs
檢視更多 >