【发布时间】:2013-11-19 18:05:22
【问题描述】:
(抱歉我的英语不好!)
为了保护我的php源代码,我只想用ioncube加密一个文件(例如function.php),然后我想在其他php文件中调用加密后的文件! (其他php文件会用mcrypt函数加密。)
请看示例:
函数.php
<?php
// Only This file will be encrypted by the ionCube
function simple_encrypt($text)
{
$salt='whatever_you_want';
return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $salt, $text, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))));
}
function simple_decrypt($text)
{
$salt='whatever_you_want';
return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $salt, base64_decode($text), MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)));
}
function decrypt_and_run($text) {
eval (simple_decrypt($text));
}
?>
script1.php
<?php
include "function.php";
decrypt_and_run("Mz/PKIZDmo1/VW4BNXX2d+XQD2dx1aB9gnBj1hbGzVM=");
// Mz/PKIZDmo1/VW4BNXX2d+XQD2dx1aB9gnBj1hbGzVM= ~ echo "hello world1!";
?>
script2.php
<?php
include "function.php";
decrypt_and_run("oD3R8wPlUujQEkJfyPvTJOKek7MjzAuGBn+PfyssjZ4=");
// oD3R8wPlUujQEkJfyPvTJOKek7MjzAuGBn+PfyssjZ4= ~ echo "hello world2!";
?>
script3.php
<?php
include "function.php";
decrypt_and_run("vMef6WP9xm1nmsAYMSgxFRY2nhBPTNWog3rLOGhb69Y=");
// vMef6WP9xm1nmsAYMSgxFRY2nhBPTNWog3rLOGhb69Y= ~ echo "hello world3!";
?>
1) 这种方式是否可以完全保护我所有的 PHP 源代码? (function.php, script1.php, script2.php, script3.php,...)
2) eval 函数是否适用于 ioncube 或 Zend Guard?
谢谢。
【问题讨论】:
-
重要的问题是为什么您要“保护”您的 PHP 源代码?你只是为自己掩盖它。如果任何访问您页面的用户看到您的 PHP,那么您需要修复您的网络服务器的配置。
-
echo simple_decrypt($text);完成。 -
根据我的经验,加密 PHP 软件是不值得的:它已经受到版权法的保护,如果您担心您的客户可能不值得信任并窃取您的代码,那么他/她不应该成为您的客户第一名。
-
如果您已经费尽心思设置和运行 ioncube 或 zendguard,为什么还要编写一个半途而废的加密函数? 只需使用您刚刚安装的东西。
-
准确地保护从谁以及为什么?任何与安全相关的问题都必须指定一个场景,应该保护什么免受什么影响。
标签: php encryption