ÿØÿà JFIF ÿá Exif MM * ÿÛ C
Server IP : 199.250.214.225 / Your IP : 52.15.253.149 Web Server : Apache System : Linux vps64074.inmotionhosting.com 3.10.0-1160.105.1.vz7.214.3 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : nicngo5 ( 1001) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /home/nicngo5/funds/vendor/laravel/framework/src/Illuminate/Encryption/ |
Upload File : |
<?php namespace Illuminate\Encryption; use RuntimeException; use Illuminate\Contracts\Encryption\DecryptException; use Illuminate\Contracts\Encryption\EncryptException; use Illuminate\Contracts\Encryption\Encrypter as EncrypterContract; class Encrypter extends BaseEncrypter implements EncrypterContract { /** * The algorithm used for encryption. * * @var string */ protected $cipher; /** * Create a new encrypter instance. * * @param string $key * @param string $cipher * @return void * * @throws \RuntimeException */ public function __construct($key, $cipher = 'AES-128-CBC') { $key = (string) $key; if (static::supported($key, $cipher)) { $this->key = $key; $this->cipher = $cipher; } else { throw new RuntimeException('The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths.'); } } /** * Determine if the given key and cipher combination is valid. * * @param string $key * @param string $cipher * @return bool */ public static function supported($key, $cipher) { $length = mb_strlen($key, '8bit'); return ($cipher === 'AES-128-CBC' && $length === 16) || ($cipher === 'AES-256-CBC' && $length === 32); } /** * Encrypt the given value. * * @param string $value * @return string * * @throws \Illuminate\Contracts\Encryption\EncryptException */ public function encrypt($value) { $iv = random_bytes($this->getIvSize()); $value = \openssl_encrypt(serialize($value), $this->cipher, $this->key, 0, $iv); if ($value === false) { throw new EncryptException('Could not encrypt the data.'); } // Once we have the encrypted value we will go ahead base64_encode the input // vector and create the MAC for the encrypted value so we can verify its // authenticity. Then, we'll JSON encode the data in a "payload" array. $mac = $this->hash($iv = base64_encode($iv), $value); $json = json_encode(compact('iv', 'value', 'mac')); if (! is_string($json)) { throw new EncryptException('Could not encrypt the data.'); } return base64_encode($json); } /** * Decrypt the given value. * * @param string $payload * @return string * * @throws \Illuminate\Contracts\Encryption\DecryptException */ public function decrypt($payload) { $payload = $this->getJsonPayload($payload); $iv = base64_decode($payload['iv']); $decrypted = \openssl_decrypt($payload['value'], $this->cipher, $this->key, 0, $iv); if ($decrypted === false) { throw new DecryptException('Could not decrypt the data.'); } return unserialize($decrypted); } /** * Get the IV size for the cipher. * * @return int */ protected function getIvSize() { return 16; } }