wp_salt() │ WP 2.5.0
Отримує секретний ключ (salt), який додається у хеш.
Секретні ключі розташовані у двох місцях: у базі даних та файлі wp-config.php .
У wp-config.php вони виглядають так:
// Згенерувати унікальні ключі можна за посиланням https://api.wordpress.org/secret-key/1.1/salt/
define('AUTH_KEY', 't vz,|X,g3{3Qxs^4G;$ 9Tk a3}~Pw%AWRh3rlw0fzZWRuU9Pm1<YPCm#R lZ5]');
define('SECURE_AUTH_KEY', '>@r&pPDKtZ%BaC@q@lk $_n<{!GYsp6c5CcM _`Fc?5c?Ye~;!Oevh/1UjdK-A%=');
define('LOGGED_IN_KEY', '%6TuLl|$M`]DF[P<-n>pr}dzw6nT&Ze[VZ-+a@Xo3tKjz6+-WrN hG.q,|9>/dNE');
define('NONCE_KEY', 'DO(u.HCT>h|Hi:-UHKaTV2;c+_.BKA/s=A=EO)-C}p:=k+~sd;-]t]d$?$ ?ja-e');
define('AUTH_SALT', '|G Vo<P_7{@-gjr?sB8j`,+Q$VMMm+&S]jR]xM^M3MAC|#]m,lud9|ES*Xeb.~y');
define('SECURE_AUTH_SALT', 'Y5tIYA{tOB?,6.3tv9y8C|V4l)t-BC.!@#j|F#j#V4VH&`&FBTz1>l=qA7Lxf8J');
define('LOGGED_IN_SALT', 'gR]>WZX ~_vY?DS+j|F+,Sdt}lG}(R6F|xlM+e~ho]KD}n1#h4)]0u|O4!<>|;YY' );
define('NONCE_SALT', '=]nQIb%tUJ;oPD=w$?t+/c5TbJ{[5i)](K[-9J35akCnu,pqswbc:%1e64HLT2:9');
У базі даних секретні ключі генеруються випадково. Функція об’єднує ключі з БД та wp-config.php . та повертає результат.
Це init .
Заміна функції (перевизначення) — у плагіні можна створити функцію з такою самою назвою, тоді вона замінить поточну функцію.
Повертає
Строку
. Рядок, значення секретного ключа.
Використання
wp_salt($scheme);
- $scheme
(рядок) - Який тип секретного ключа потрібно отримати, може бути: ‘
auth
‘, ‘
secure_auth
‘, ‘
logged_in
‘, ‘
nonce
‘.
За замовчуванням: ‘auth’
Приклади
#1 Демонстрація роботи wp_salt
$salt = wp_salt('logged_in');
echo $salt;
// виведе щось таке:
// 0D3*SIMO4$(t~I;E]NBx}L`Vy2U8o|{vbxH4t3l-!4-Io N(U74&+BdC^S,~*0^B>k,|4/`76[PG| V:)}o$)!hh1GgZ>t8[A-rmF&RDU~|fcN1/]T7i/=H
список змін
wp salt WP 6.0.2
function wp_salt( $scheme = 'auth' ) { static $cached_salts = array(); if ( isset ( $ cached_salts [ $ scheme ] ) ) { /** * Filters the WordPress salt. * * @ Since 2.5.0 * * @param string $cached_salt Cached salt for given scheme. * @param string $scheme Authentication scheme. Values включає 'auth', * 'secure_auth', 'logged_in', 'nonce'. */ return apply_filters( 'salt', $cached_salts[ $scheme ], $scheme ); } static $duplicated_keys; if ( null === $duplicated_keys ) { $duplicated_keys = array( 'put your unique phrase here' => true ); foreach ( array( 'AUTH', 'SECURE_AUTH', 'LOGGED_IN', 'NONCE', 'SECRET' ) as $first ) { foreach ( array( 'KEY', 'SALT' ) as $second ) { if ( ! defined( "{$first}_{$second}" ) ) { continue; } $value = constant( "{$first}_{$second}" ); $duplicated_keys[ $value ] = isset( $duplicated_keys[ $value ] ); } } } $values = array( 'key' => '', 'salt' => '', ); if ( defined( 'SECRET_KEY' ) && SECRET_KEY && empty( $duplicated_keys[ SECRET_KEY ] ) ) { $values['key'] = SECRET_KEY; } if ( 'auth' === $scheme && defined( 'SECRET_SALT' ) && SECRET_SALT && empty( $duplicated_keys[ SECRET_SALT ] ) ) { $values['salt'] = SECRET_SALT; } if ( in_array( $scheme, array( 'auth', 'secure_auth', 'logged_in', 'nonce' ), true ) ) { foreach ( array( 'key', 'salt' ) as $type ) { $const = strtoupper( "{$scheme}_{$type}" ); if ( defined( $const ) && constant( $const ) && empty( $duplicated_keys[ constant( $const ) ] ) ) { $ values [ $ type ] = constant ( $ const ); } elseif ( ! $values[ $type ] ) { $values[ $type ] = get_site_option( "{$scheme}_{$type}" ); if ( ! $values[ $type ] ) { $ values [ $ type ] = wp_generate_password (64, true, true); update_site_option( "{$scheme}_{$type}", $values[ $type ] ); } } } } else { if ( ! $values['key'] ) { $values['key'] = get_site_option( 'secret_key' ); if ( ! $values['key'] ) { $ values [ 'key'] = wp_generate_password (64, true, true); update_site_option( 'secret_key', $values['key'] ); } } $values['salt'] = hash_hmac( 'md5', $scheme, $values['key'] ); } $cached_salts[ $scheme ] = $values['key'] . $values['salt']; /** Цей filter is documented в wp-includes/pluggable.php */ return apply_filters( 'salt', $cached_salts[ $scheme ], $scheme ); }
Зв’язані функції