Current File : /var/www/pediatribu/wp-content/plugins/independent-analytics/IAWP/Utils/Salt.php |
<?php
namespace IAWP\Utils;
/** @internal */
class Salt
{
/*
* Used for salting visitor hashes.
*/
public static function visitor_token_salt() : string
{
return self::get_salt_option('iawp_salt');
}
public static function refresh_visitor_token_salt() : string
{
\delete_option('iawp_salt');
return self::get_salt_option('iawp_salt');
}
/*
* Primarily used for salting request payloads.
*/
public static function request_payload_salt() : string
{
return self::get_salt_option('iawp_request_payload_salt');
}
private static function get_salt_option($name) : string
{
$salt = \get_option($name);
if (!$salt) {
$salt = self::generate_salt();
\update_option($name, $salt, \true);
}
return $salt;
}
private static function generate_salt() : string
{
$length = 32;
$bytes = \random_bytes($length);
return \substr(\strtr(\base64_encode($bytes), '+', '.'), 0, 44);
}
}