HEX
Server: LiteSpeed
System: Linux l24.yourwebhosting.net 5.14.0-611.54.3.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 7 16:31:24 EDT 2026 x86_64
User: turkishi (1582)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //proc/thread-self/root/proc/self/cwd/wp-content/plugins/stratum/includes/string-encryption.php
<?php

namespace Stratum;

final class String_Encryption {

	private $cipher = 'aes-256-ctr';
	private $salt;
	private $passphrase;

	public function __construct() {
		$this->salt = $this->get_salt();
		$this->passphrase = $this->get_passphrase();
	}

	public function encrypt( $string_to_encrypt ) {

		if ( empty( $string_to_encrypt ) ) {
			return $string_to_encrypt;
		}

		if ( ! $this->can_encrypt() ) {
			return $string_to_encrypt;
		}

		$ivlen = openssl_cipher_iv_length( $this->cipher );
		$iv = openssl_random_pseudo_bytes( $ivlen );

		$encrypted_string = openssl_encrypt(
			$string_to_encrypt . $this->salt,
			$this->cipher,
			$this->passphrase,
			0,
			$iv
		);

		return base64_encode( $iv . $encrypted_string );
	}

	public function decrypt( $string_to_decrypt ) {

		if ( ! $this->can_encrypt() ) {
			return $string_to_decrypt;
		}

		$encrypted_string = base64_decode( $string_to_decrypt, true );

		$ivlen = openssl_cipher_iv_length( $this->cipher );
		$iv = substr( $encrypted_string, 0, $ivlen );

		$encrypted_string = substr( $encrypted_string, $ivlen );

		$decrypted_string = openssl_decrypt(
			$encrypted_string,
			$this->cipher,
			$this->passphrase,
			0,
			$iv
		);

		if ( ! $decrypted_string || substr( $decrypted_string, -strlen( $this->salt ) ) !== $this->salt ) {
			return $string_to_decrypt;
		}

		return substr( $decrypted_string, 0, -strlen( $this->salt ) );
	}

	private function can_encrypt() {

		if ( ! function_exists( 'openssl_encrypt' ) ) {
			return false;
		}

		if ( ! in_array( $this->cipher, openssl_get_cipher_methods() ) ) {
			return false;
		}

		return true;
	}

	private function get_passphrase() {

		if ( function_exists( 'wp_salt' ) && wp_salt() ) {
			return wp_salt();
		}

		return 'stratum_non_secret_passphrase';
	}

	private function get_salt() {
		return 'stratum_non_secret_salt';
	}
}