(抱歉我的英文不好!)
为了保护我的php源代码,我想用ioncube加密一个文件(例如 function.php ),然后我想在其他php文件中调用加密文件! (其他php文件将使用mcrypt函数加密。)
请参阅示例:
function.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中有效吗?
感谢。
答案 0 :(得分:0)
隐藏代码只会使开发更加困难并增加cpu周期(从而减慢脚本速度)。所有代码都是反向可操作的。你最好只说明propper许可证和/或只为开发人员提供代码
答案 1 :(得分:0)
我过去尝试过类似的东西以避免逆向工程。您可以使用IonCube或zend Guard对所有代码进行模糊处理。 但是你的方式, eval = evil ......
在完全dotNet上有一个PHP实现。 Phalanger
我过去使用过但很简单的东西,但我听到了很好的事情。试试吧..