PHP可以加载加密文件吗?

KoK*_*oKo -2 php

例如,我想:

require('encrypted.php')
Run Code Online (Sandbox Code Playgroud)

"encrypted.php"包含用base64加密的php代码,我有解密它的密钥.有没有办法首先解密文件,然后只是将解密的代码加载到PHP?

Nie*_*sol 7

跳到脑海的第一种方式是:

eval("?".">".base64_decode(file_get_contents("encrypted.php"))."<"."?php");
Run Code Online (Sandbox Code Playgroud)

然而,这可能不是一个好主意(邪恶的评估).

为什么要加密PHP文件呢?除非你搞砸了东西,否则没有人能看到源代码.


Mic*_*ski 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);
Run Code Online (Sandbox Code Playgroud)

注意:如果编码文件包含<?php ?>打开/关闭标记,请参阅@ Kolink的实现.