PHP可以加载加密文件吗


Can PHP load a encrypted file?

例如,我想:

require('encrypted.php')

"encrypter.php"包含用base64加密的php代码,我有解密它的密钥。有没有办法先解密文件,然后将解密后的代码加载到php中?

首先想到的是:

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

然而,这可能不是一个好主意(邪恶的eval)。

为什么要加密PHP文件?除非你把事情搞砸了,否则没有人能看到源代码。

您需要使用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);

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

如果不需要任何密钥来解码base64数据,请使用base64_decode()。

这不是专业的解决方案,但请注意:http://www.zend.com/en/products/guard/