HEX
Server: Apache
System: Linux server.onegroup3.co.nz 5.14.0-570.62.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 11 10:10:59 EST 2025 x86_64
User: importersclearan (1088)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/importersclearan/www/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');
    }
}