Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.216.28
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
phpmyadmin /
libraries /
classes /
Crypto /
Delete
Unzip
Name
Size
Permission
Date
Action
Crypto.php
1.79
KB
-rw-r--r--
2023-02-07 21:35
Save
Rename
<?php declare(strict_types=1); namespace PhpMyAdmin\Crypto; use Throwable; use function is_string; use function mb_strlen; use function mb_substr; use function random_bytes; use function sodium_crypto_secretbox; use function sodium_crypto_secretbox_open; use const SODIUM_CRYPTO_SECRETBOX_KEYBYTES; use const SODIUM_CRYPTO_SECRETBOX_NONCEBYTES; final class Crypto { private function getEncryptionKey(): string { global $config; $key = $config->get('URLQueryEncryptionSecretKey'); if (is_string($key) && mb_strlen($key, '8bit') === SODIUM_CRYPTO_SECRETBOX_KEYBYTES) { return $key; } $key = $_SESSION['URLQueryEncryptionSecretKey'] ?? null; if (is_string($key) && mb_strlen($key, '8bit') === SODIUM_CRYPTO_SECRETBOX_KEYBYTES) { return $key; } $key = random_bytes(SODIUM_CRYPTO_SECRETBOX_KEYBYTES); $_SESSION['URLQueryEncryptionSecretKey'] = $key; return $key; } public function encrypt(string $plaintext): string { $key = $this->getEncryptionKey(); $nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES); $ciphertext = sodium_crypto_secretbox($plaintext, $nonce, $key); return $nonce . $ciphertext; } public function decrypt(string $encrypted): ?string { $key = $this->getEncryptionKey(); $nonce = mb_substr($encrypted, 0, SODIUM_CRYPTO_SECRETBOX_NONCEBYTES, '8bit'); $ciphertext = mb_substr($encrypted, SODIUM_CRYPTO_SECRETBOX_NONCEBYTES, null, '8bit'); try { $decrypted = sodium_crypto_secretbox_open($ciphertext, $nonce, $key); } catch (Throwable $e) { return null; } if (! is_string($decrypted)) { return null; } return $decrypted; } }