1

例如,我有一个 PHP 脚本

<?php
$name="Alfred";
echo $name;
?>

我使用以下脚本进行加密,(通过 www.rightscripts.com/phpencode/index.php)

<?php 
eval(gzinflate(str_rot13(base64_decode('encrypted code')))); 
?>

但它只打印 "$name="Alfred";" 和“未定义的变量 $name”。问题是什么 ?还有其他解决方案吗?请帮我 ?

4

1 回答 1

4

以这种方式“编码”并不能真正保护您免受任何伤害。

编码的 PHP 代码在服务器上,将其解码回常规 PHP 的代码也是如此。

如果有人对您的服务器有足够的访问权限,他们可以读取您编码的 PHP 脚本,那么几乎可以肯定他们也有足够的权限来读取解码器脚本。这意味着您的代码实际上根本没有受到保护。

有许多混淆器和编码器可以做你想做的事,但归根结底,你真正对代码所做的只是减慢它的速度(eval()除了其他问题之外,这是一个主要的性能杀手) .

更好的解决方案可能是编译您的代码。有一个名为 HipHop 的 PHP 编译器可以为您解决问题。值得一试。

即使使用已编译的代码(任何语言),对于决心将其拆开并了解您的秘密的人来说,它仍然是可能的,但它比简单的编码脚本要困难得多,而且它应该比正常运行更快编译时,编码时比平时慢,所以你双赢。

于 2012-04-17T18:17:07.443 回答