我一直在使用 PHP Desktop,效果很好,但是如果我想共享一个项目,我不希望用户看到代码中的所有内容。
我尝试了建议的代码保护器,但似乎对当前版本没有任何作用。我找到了一个简单的 PHP 混淆器代码,但它给出了一个错误。它还会生成一些输出但无法回显结果。
错误:
Warning: php_strip_whitespace(): failed to open stream: No error in C:\xampp\htdocs\PHP Obfuscator\Obfus.php on line 11
代码:
<?php
//$infile = file_get_contents("Input.php");
$infile = '<?php echo "Hello World 123"; ?>';
$outfile = "Output.php";
echo "Processing $infile to $outfile\n";
$data="ob_end_clean();?>";
$data.=php_strip_whitespace($infile); // Remove whitespace
$data.=gzcompress($data,9); // Compress data
$data=base64_encode($data); // Encode in base64
// Generate output text
$out='<?ob_start();$a=\''.$data.'\';eval(gzuncompress(base64_decode($a)));$v=ob_get_contents();ob_end_clean();?>';
// Write output text
//file_put_contents($outfile,$out);
echo $out;
?>
有谁知道如何修复此代码,使下载 exe 的普通用户更难阅读 PHP?
这只是为了防止非编码人员,因为它会被打包在一个 exe 中,我知道这不是隐藏代码源的安全方法。
还有人有 blenc 等与当前版本一起使用吗?即使按照教程进行操作,我也没有运气。
php_strip_whitespace()
的参数必须是文件名,而不是原始字符串。将数据写入临时文件,然后清理它,完成后删除临时文件。
无论如何,你都错了。通过混淆实现的安全根本不是真正的安全。任何有能力的程序员都会识别 base64 编码,解压缩压缩数据是微不足道的。然后,一个像样的 IDE 可以通过几次击键来恢复丢失的空格。此外,您的代码带有
eval(gzuncompress(base64_decode($a)))
,从字面上告诉用户您首先做了什么来混淆代码。
如果您不希望用户访问源代码,请不要分发源代码。使用 API 或编译器,而不是混淆器。
如果我经常使用这个: 最好的 php 混淆器:http://php-obfucator.unaux.com/
为我的php代码加密
• Spring boot proguard 混淆的 JAR 在本地工作,但不能在 Azure Pipeline 上工作
• 三个带有 python 图像的 docker 容器在 docker compose 中混淆了
• 连接字符串混淆
• 在 docker-compose.yaml 文件中的 docker 容器内运行命令的语法是什么?
• 为什么在 html 文件中运行的 javascript 在控制台中不起作用? [关闭]
• 如何将我的遗留 PHP 应用程序连接到 MySQL v8?
• Laravel 9 Composer 检测到 PHP 版本问题
• 如何在没有交互模式的情况下使用官方 php docker 镜像
• always_ff、always_comb、always_latch和always的区别
• Selenium Python 脚本仅适用于命令行 php,但不适用于浏览器
• 如何在 PHP Codeigniter 中捕获 ArgumentCountError?