例如,我想:
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/