HEX
Server: LiteSpeed
System: Linux node612.namehero.net 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: dfwparty (1186)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: /home/dfwparty/dfwmagic.com/wp-content/mu-plugins/wp-toolkit/Login/TokenGenerator.php
<?php
// Copyright 1999-2026. WebPros International GmbH. All rights reserved.

namespace Webpros\WptkWpPlugin\WpToolkit\Login;

class TokenGenerator
{
    const TOKEN_QUERY_PARAM = 'token';
    const SALT_NAME = 'auth';
    const HASH_ALGO = 'sha384';
    const TOKEN_BYTES_LENGTH = 32;

    /**
     * @return string
     */
    public function generateToken()
    {
        if (\function_exists('random_bytes')) {
            return bin2hex(random_bytes(self::TOKEN_BYTES_LENGTH));
        }

        return wp_generate_password(self::TOKEN_BYTES_LENGTH);
    }

    /**
     * @param string $token
     *
     * @return string
     */
    public function generateTokenHash($token)
    {
        return hash(self::HASH_ALGO, $token . wp_salt(self::SALT_NAME));
    }

    /**
     * @param int $ttl
     *
     * @return string
     */
    public function getTokenEndDate($ttl)
    {
        $endDate = new \DateTime();
        $endDate->modify('+' . $ttl . ' seconds');

        return $endDate->format('Y-m-d\TH:i:sO');
    }
}