key = $key; $this->iv = $iv; } private function addPadding($data, $blockSize = 16) { $pad = $blockSize - (strlen($data) % $blockSize); return $data . str_repeat(chr($pad), $pad); } private function removePadding($data) { $pad = ord($data[strlen($data) - 1]); return substr($data, 0, -$pad); } public function encryptData($plainText) { $plainText = mb_convert_encoding($plainText, 'UTF-8'); $paddedText = $this->addPadding($plainText); $encrypted = openssl_encrypt($paddedText, 'AES-256-CBC', $this->key, OPENSSL_RAW_DATA, $this->iv); return base64_encode($encrypted); } public function decryptData($encryptedText) { $decoded = base64_decode($encryptedText); $decrypted = openssl_decrypt($decoded, 'AES-256-CBC', $this->key, OPENSSL_RAW_DATA, $this->iv); return $this->removePadding($decrypted); } } $key = getenv('keyOfApp'); $iv = getenv('initializationVector'); echo "Key Length: " . strlen($key) . PHP_EOL; echo "IV Length: " . strlen($iv) . PHP_EOL; $encryptionHelper = new EncryptionHelper($key, $iv); $storedHash = '$2y$10$cM9AJ.EJyX1zj8zReTw8CO.Rcr6XW.8njmHeezEqsv4OlEWyHHA4S'; $userProvidedPassword = 'unknown'; // This would come from the user input if (password_verify($userProvidedPassword, $storedHash)) { echo "🔹 password_verify: Password is correct." . PHP_EOL; } else { echo "🔹 password_verify: Incorrect password." . PHP_EOL; } $plainText = "unknown"; $encryptedText = $encryptionHelper->encryptData($plainText); $decryptedText = $encryptionHelper->decryptData($encryptedText); echo "🔹 Original Text: $plainText" . PHP_EOL; echo "🔹 Encrypted Text: $encryptedText" . PHP_EOL; echo "🔹 Decrypted Text: $decryptedText" . PHP_EOL;