Не могу прочитать переменные и другие функции после расшифровки - PullRequest
0 голосов
/ 07 февраля 2019

Я работаю над простым приложением для шифрования, которое может шифровать php-файлы внутри папки, используя этот класс .Моя проблема после расшифровки, все файлы не работают как переменные и функции.Когда я пытался отобразить переменную, она говорит «неопределено».

Надеюсь, вы мне поможете.

Спасибо.

SAMPLE CODE

<?php
    require_once('func.php');
    require_once('encryptionClass.php');
    if(is_array($_FILES)){

        $encrypted_dir = "encrypted_files/";
        $saveFiles = browseDir($encrypted_dir);

        foreach($saveFiles as $file){ // iterate files

        if(is_file($encrypted_dir.$file))

            unlink($encrypted_dir.$file); // delete file

        }

        foreach($_FILES['files']['name'] as $key => $value){

            $file = explode(".", $_FILES['files']['name'][$key]);
            $ext = array("php");

            if(in_array($file[1], $ext)){

                $file_name = $file[0].'.'.$file[1];
                $source = $_FILES['files']['tmp_name'][$key];
                $location = $encrypted_dir.$file_name;

                $code = file_get_contents($source);

                $encryption_key = 'CKXH2U9RPY3EFD70TLS1ZG4N8WQBOVI6AMJ5';
                $cryptor = new Cryptor($encryption_key);
                $crypted_token = $cryptor->encrypt($code);
                $f = fopen($location, 'w');

                // DATA BEING SAVE TO THE ENCRYPTED FILE

                $data = '
                    <?php

                        require_once("../encryptionClass.php");
                        $encryption_key = "CKXH2U9RPY3EFD70TLS1ZG4N8WQBOVI6AMJ5";
                        $cryptor = new Cryptor($encryption_key);
                        $crypted_token = "'. $crypted_token .'";
                        $token = $cryptor->decrypt($crypted_token);
                        echo $token;
                        ?>
                        <!-- trying to display the value of variable from $token -->
                        <p><?php echo $name; ?></p> 

                        ';


                fwrite($f, $data);
                fclose($f);
                unset($code);

            }
        }



    }
?>

1 Ответ

0 голосов
/ 07 февраля 2019

После расшифровки ваш расшифрованный код находится внутри переменной $token в виде строки.НЕ PHP-КОД, а STRING.

Итак, вам нужно записать содержимое $token во временный файл и запросить этот файл для доступа к нему, как коду PHP.

Надеюсь, вы понимаете.

Также вы можете попробовать eval($token) вместо echo $token.Это оценит строку как код PHP.Тем не менее, это очень плохая практика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...