Uma área de pesquisa sobre o WordPress para devs e autores do tema



hash_equals ›

Desde3.9.2
Obsoleton/a
hash_equals ( $a, $b )
Parâmetros: (2)
  • (string) $a Expected string.
    Required: Yes
  • (string) $b Actual, user supplied, string.
    Required: Yes
Retorna:
  • (bool) Whether strings are equal.
Definido em:
Codex:

Timing attack safe string comparison

Compares two strings using the same time whether they're equal or not.

Note: It can leak the length of a string when arguments of differing length are supplied.

This function was added in PHP 5.6. However, the Hash extension may be explicitly disabled on select servers. As of PHP 7.4.0, the Hash extension is a core PHP extension and can no longer be disabled. I.e. when PHP 7.4.0 becomes the minimum requirement, this polyfill can be safely removed.



Funções relacionadas: has_meta, _hash_hmac, has_blocks, has_tag, is_email

Fonte

function hash_equals( $a, $b ) {
		$a_length = strlen( $a );
		if ( $a_length !== strlen( $b ) ) {
			return false;
		}
		$result = 0;

		// Do not attempt to "optimize" this.
		for ( $i = 0; $i < $a_length; $i++ ) {
			$result |= ord( $a[ $i ] ) ^ ord( $b[ $i ] );
		}

		return $result === 0;
	}
endif;

// JSON_PRETTY_PRINT was introduced in PHP 5.4
// Defined here to prevent a notice when using it with wp_json_encode()
if ( ! defined( 'JSON_PRETTY_PRINT' ) ) {
	define( 'JSON_PRETTY_PRINT', 128 );
}