-
WIBUHAX0R1337
-
/
home
/
coludnqa
/
rohihbs.com
/
wp-content
/
plugins
/
really-simple-ssl
/
core
/
app
/
Traits
/
[ Home ]
Create Folder
Create File
Nama File / Folder
Size
Action
HasAllowlistControl.php
3.357KB
Edit File
Delete File
Rename
HasEncryption.php
3.873KB
Edit File
Delete File
Rename
HasNonces.php
0.487KB
Edit File
Delete File
Rename
HasViews.php
1.497KB
Edit File
Delete File
Rename
<?php namespace ReallySimplePlugins\RSS\Core\Traits; trait HasEncryption { /** * Encrypt a string with a prefix. If the prefix is already there, it's * already encrypted. */ public function maybeEncryptPrefixed(string $data, string $prefix = 'rsssl_'): string { if (strpos($data, $prefix) === 0) { return $data; } $data = $this->encrypt($data); return $prefix . $data; } /** * Decrypt data if prefixed. If not prefixed, return the data, as it is * already decrypted. */ public function maybeDecryptPrefixed(string $data, string $prefix = 'rsssl_', string $deprecatedKey = ''): string { if ( strpos($data, $prefix) !== 0 ) { return $data; } $data = substr($data, strlen($prefix)); return $this->decrypt($data, 'string', $deprecatedKey); } /** * Encrypt the given data * * @param array|string $data * @param string $type The $data type that was given ('string' or 'array') */ public function encrypt($data, string $type = 'string'): string { $key = $this->getEncryptionKey(); if ('array' === strtolower($type)) { $data = serialize($data); } $dataIsEmpty = (strlen(trim($data)) === 0); $functionsDoNotExists = ( function_exists('openssl_random_pseudo_bytes') === false || function_exists('openssl_cipher_iv_length') === false || function_exists('openssl_encrypt') === false ); if ($dataIsEmpty || $functionsDoNotExists) { return ''; } $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc')); $encrypted = openssl_encrypt($data, 'aes-256-cbc', $key, 0, $iv); return base64_encode($encrypted . '::' . $iv); } /** * Decrypt the given data * * @param mixed $data The data to decrypt * @param string $type The type of data to return ('string' or 'array') * @return array|string Either array or string, based on the $type */ public function decrypt($data, string $type = 'string', string $deprecatedKey = '') { $fallbackValue = (strtolower($type) === 'string' ? '' : []); $key = !empty($deprecatedKey) ? $deprecatedKey : $this->getEncryptionKey(); // If $data is empty, return appropriate empty value based on type if (empty($data)) { return $fallbackValue; } // If $data is not a string (i.e., it's already an array), return as is if (!is_string($data)) { return $data; } if (!function_exists('openssl_decrypt')) { return $fallbackValue; } $decoded = base64_decode($data); if (false === $decoded) { return $fallbackValue; } if (strpos($decoded, '::') !== false) { [$encrypted_data, $iv] = explode('::', $decoded, 2); } else { // Deprecated method, for backwards compatibility (license decryption) $ivlength = openssl_cipher_iv_length('aes-256-cbc'); $iv = substr($decoded, 0, $ivlength); $encrypted_data = substr($decoded, $ivlength); } $decrypted_data = openssl_decrypt($encrypted_data, 'aes-256-cbc', $key, 0, $iv); if ('array' === strtolower($type)) { $unserialized_data = @unserialize($decrypted_data); return (is_array($unserialized_data)) ? $unserialized_data : []; } return $decrypted_data; } /** * Method is used to fetch the encryption key. Used in the encryption and * decryption processes. The key is a constant stored in the wp-config * or a key stored in the database. */ private function getEncryptionKey(): string { return defined('RSSSL_KEY') ? RSSSL_KEY : get_site_option('rsssl_main_key', ''); } }
Save!!!
© 2022 - 2023 WIBUHAXOR V1 By Lutfifakee || Padang Blackhat