HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux Bradford-Sitios 6.14.0-1017-azure #17~24.04.1-Ubuntu SMP Mon Dec 1 20:10:50 UTC 2025 x86_64
User: www-data (33)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/gestor-horarios.bradford/app/libraries/Bcrypt.php
<?php

if(CRYPT_BLOWFISH != 1) {
	//PHP < 5.3
	class Bcrypt {
	  private $rounds;
	  public function __construct($rounds = 12) {
	    $this->rounds = $rounds;
	  }

	  public function hash($input) {
	    $hash = crypt($input);

	    if(strlen($hash) > 13)
	      return $hash;

	    return false;
	  }

	  public function verify($input, $existingHash) {
	    $hash = crypt($input, $existingHash);

	    return $hash === $existingHash;
	  }

	}
}
else
{
	class Bcrypt {
	  private $rounds;
	  public function __construct($rounds = 12) {
	    if(CRYPT_BLOWFISH != 1) {
	      throw new Exception("bcrypt está soportado en esta instalacióin, por favor vea http://php.net/crypt");
	    }

	    $this->rounds = $rounds;
	  }

	  public function hash($input) {
	    $hash = crypt($input, $this->getSalt());

	    if(strlen($hash) > 13)
	      return $hash;

	    return false;
	  }

	  public function verify($input, $existingHash) {
	    $hash = crypt($input, $existingHash);

	    return $hash === $existingHash;
	  }

	  private function getSalt() {
	    $salt = sprintf('$2a$%02d$', $this->rounds);

	    $bytes = $this->getRandomBytes(16);

	    $salt .= $this->encodeBytes($bytes);

	    return $salt;
	  }

	  private $randomState;
	  private function getRandomBytes($count) {
	    $bytes = '';

	    if(function_exists('openssl_random_pseudo_bytes') &&
	        (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN')) { // OpenSSL slow on Win
	      $bytes = openssl_random_pseudo_bytes($count);
	    }

	    if($bytes === '' && is_readable('/dev/urandom') &&
	       ($hRand = @fopen('/dev/urandom', 'rb')) !== FALSE) {
	      $bytes = fread($hRand, $count);
	      fclose($hRand);
	    }

	    if(strlen($bytes) < $count) {
	      $bytes = '';

	      if($this->randomState === null) {
	        $this->randomState = microtime();
	        if(function_exists('getmypid')) {
	          $this->randomState .= getmypid();
	        }
	      }

	      for($i = 0; $i < $count; $i += 16) {
	        $this->randomState = md5(microtime() . $this->randomState);

	        if (PHP_VERSION >= '5') {
	          $bytes .= md5($this->randomState, true);
	        } else {
	          $bytes .= pack('H*', md5($this->randomState));
	        }
	      }

	      $bytes = substr($bytes, 0, $count);
	    }

	    return $bytes;
	  }

	  private function encodeBytes($input) {
	    // The following is code from the PHP Password Hashing Framework
	    $itoa64 = './ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';

	    $output = '';
	    $i = 0;
	    do {
	      $c1 = ord($input[$i++]);
	      $output .= $itoa64[$c1 >> 2];
	      $c1 = ($c1 & 0x03) << 4;
	      if ($i >= 16) {
	        $output .= $itoa64[$c1];
	        break;
	      }

	      $c2 = ord($input[$i++]);
	      $c1 |= $c2 >> 4;
	      $output .= $itoa64[$c1];
	      $c1 = ($c2 & 0x0f) << 2;

	      $c2 = ord($input[$i++]);
	      $c1 |= $c2 >> 6;
	      $output .= $itoa64[$c1];
	      $output .= $itoa64[$c2 & 0x3f];
	    } while (1);

	    return $output;
	  }
	}
}

?>