2012-02-17 2 views
-2

Например, я хотел бы:Может ли PHP загрузить зашифрованный файл?

require('encrypted.php') 

«encrypted.php» содержит PHP код, который был зашифрован с base64, и у меня есть ключ, чтобы расшифровать его. Есть ли способ сначала дешифровать файл, а затем просто загрузить расшифрованный код в PHP?

+5

base64 является кодирование, не шифрование. – Dennis

+2

Зашифрован с 'base64' ... это шутка? У вас есть ключ к расшифровке? Вы понимаете, что base64 не является методом шифрования, не так ли? Это простая кодировка, и ключ не требуется. – Brad

+0

http://stackoverflow.com/questions/3701291/how-to-decode-eval-gzinflate-base64-decode – seanbreeden

ответ

7

Первый способ, который прыгает на ум:

eval("?".">".base64_decode(file_get_contents("encrypted.php"))."<"."?php"); 

Однако это, вероятно, не очень хорошая идея (зло Eval).

Почему вы все равно зашифровали файл PHP? Никто не может видеть исходный код, если вы не обходитесь с вещами.

+0

+1 Забыл о закрытии существующего открытого ''. Показывает, как часто я хотел бы или нуждался в 'eval()' файле ... –

+0

Ха-ха, это похоже на вирус. – Iznogood

+0

Спасибо, ваш ответ был очень полезен. – KoKo

5

Вам необходимо загрузить содержимое файла file_get_contents() или аналогичный, а затем позвонить base64_decode() и eval() его как PHP. Только делайте это, если вы уверены в содержимом файла и доверяете его источнику.

// Only do this is the file is trusted!!! 
$phpcode = base64_decode(file_get_contents("trusted_encoded_file.php")); 
eval($phpcode); 

Примечание: реализация Знакомства @ Kolink, если закодированный файл содержит <?php ?> открытия/закрытия тегов.

+0

Спасибо, ваш ответ был очень полезен. – KoKo

0

Вам не нужен ключ для декодирования данных base64, используйте base64_decode().

+0

Спасибо, но это не то, о чем я прошу. base64 или нет, это не важно, я просто составил сценарий. Основной вопрос, который я задаю, заключается в загрузке зашифрованного файла в PHP, который у меня есть ключ к расшифровке. – KoKo

Смежные вопросы