Files
carpseeds.pl/wp-content/plugins/przelewy24/includes/class-p24-hasher.php
2024-07-15 11:28:08 +02:00

78 lines
1.4 KiB
PHP

<?php
/**
* File that define P24_Hasher class.
*
* @package Przelewy24
*/
defined( 'ABSPATH' ) || exit;
/* We have to require this one by hand. */
require_once ABSPATH . WPINC . '/class-phpass.php';
/**
* Class to hash sensitive data.
*/
class P24_Hasher {
/**
* The hasher from WordPress.
*
* @var PasswordHash
*/
private $hasher;
/**
* String with salt.
*
* @var string
*/
private $salt;
/**
* Constructor.
*
* @param P24_Config_Accessor $config Config for Przelewy24.
*/
public function __construct( P24_Config_Accessor $config ) {
$this->hasher = new PasswordHash( 8, false );
$this->salt = $config->get_salt();
}
/**
* Compute hash.
*
* @param string $input Input to compute hash.
* @return string
*/
public function hash( $input ) {
return $this->hasher->HashPassword( $input . $this->salt );
}
/**
* Check hash.
*
* @param string $input Intput that has hash computed.
* @param string $hash Computed hash.
* @return bool
*/
public function check( $input, $hash ) {
return $this->hasher->CheckPassword( $input . $this->salt, $hash );
}
/**
* Check hash and return original value if valid. Null otherwise.
*
* @param string $input Intput that has hash computed.
* @param string $hash Computed hash.
* @return string|null
*/
public function return_if_valid( $input, $hash ) {
if ( $this->check( $input, $hash ) ) {
return $input;
} else {
return null;
}
}
}