PHP源码加密,zend guard,ioncube,加密php源代码。

2023-11-21 22:32

本文主要是介绍PHP源码加密,zend guard,ioncube,加密php源代码。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PHP源码加密,以前只知道zend guard,今天才知道,原理还有个 ioncube

今天在客户服务器上,安装产品的时候发现,客户的php源码是用ioncube加密的, 而我们使用的是zend guard,安装了zend optimizer后发现有冲突。。

下面是网上看到的关于这两种加密工具的对比。

一、概述
        PHP 代码属于开源 WEB代码,不需要编译,属于解释型 语言。(即在WebServer中追加相应扩展名的解释程序即可完成对代码的分析处理)。
根据PHP语言解释型的 特性,结合个 项目需求,我们就可以使用php.exe(PHP解释程序)对PHP代码进行解释 应用,使得PHP不仅适用于WEB环境也适用于本地处理,如:GTK等。
        我手中有一项目采用Delphi通道(PIP)方式调用phpexe解释器,解释PHP代码完成WEB中的过程。
但是另一方面弊端又体现出来,由于PHP采用 开源方式,不同用户很容易看到使用PHP语言所篇写的源程序,对源程序进行分析,很容易的得到数据连 接,处理流程,甚至 服务器名等重要信息,同样的也不利于 软件 开发商的版权保护。因此就必须对PHP源代码进行加密授权处理,即(Encode化与 License授权)
        当前市场上较流行的对PHP进行上述加密授权的软件主要有二种:
(1) Zend公司的ZendGuard。—-当前最 新版本5.0.1(2008/06/17)
(2) ionCube公司的ionCube PHP Encode。—-当前最新版本6.5(2008/06/17)
        对于这两各较常用的Encode软件其二者有着不同的 功能与各自的优点。

二、Zend Guard
        Zend Guard只能对带有PHP标记或源码的文件进行加密(如:.php,inc等),对于其他不带有PHP标记的文本方式保存的文件不能进行加密操作,支持期限,注册码。
        支持PHP4.2.X~5.2.X版本的加密。
        使用的ZendOptimizer(PHP引擎)可以提高源码20~50%以上的速度优化,结合ZendGuard可以提高至50%以上的性能速度 优化,且ZendOptimizer可以安装于当前较多主流系统中。(在使用ZendGuard加密时可选择ZendOptimizer版本进行更多的优 化处理),另外,ZendGuard只能用于配置了ZendOptimizer的环境中,不能独立运行。(必须在php.ini文件中进行配置)

*另外需要值得注意的是ZendGuard在PHP4下的错误,对于PHP4的绝对路径及相对路径在加密时会出现较大的差别。

        在PHP4.4.1环境下,如有如下两个文件:
Test.php

引用:

<?php
require_once(”inc/test1.php”);
?>

inc/Test1.php

引用:

<?php
echo realpath(dirname(__FILE__));
?>

        不进行加密的前提下,显示的结果是: C:\LocalWeb\zendtest\inc
        但是加密后却显示: C:\LocalWeb\zendtest-encode\zendtest

        可以发现经过ZendGuard加密后inc目录被去掉了,显示的是被包含之前的文件的地址。(即__FILE__被当成临时常量显示了出来)。
*该问题经测试,在PHP5.2.6环境下没有发现该问题。

三、ionCube PHP Encode
        ionCube PHP Encode,由ionCube开发,用于对PHP或非PHP文件进行加密工作。ionCube在功能方面经过测试可以优胜于Zend公司的 ZendGuard,不仅支持期限,注册码,等加密方式,还支持对IP,MAC地址等复杂的加密方式。另外,对于ionCube来说不仅可以加密带有 PHP标记或源码的php文件还可以对非php文件的以text方式保存的文件进行加密操作,如xml,js,css等。(但是读写时必须使用 ionCube所提供的读入API进行读写操作。)
        可加密的PHP版本从PHP4.0.6~5.2.X(比ZendGuard高2个级别)
ionCube与Zend一样,为了提高PHP性能优化也提供了相应的PHP引擎,可以为大多数操作系统提供PHP优化功能,但是可惜的是,至今未提供Windows版本的PHP引擎。
        对于之前ZendGuard中所说的PHP4环境下路径问题,在ionCube中没有出现,可以看出ionCube相对稳定。
对于ionCube来说,对带有PHP标记或源码的文件采用压缩加密方式处理,对于非php的文本类文件则采用加密方式处理。在读入时必须使用 “ioncube_read_file/ ioncube_write_file”读写文件。因此在使用ionCube加密前需要对相应的PHP代码进行改造后才能使用。

四、Zend Guard与ionCube比较结果
        以下比较结果项是个人根据自我判断产生不做为官司方比较结果。

比较项目

ZendGuard

ionCube PHP Encode

比较结果
(强项)

PHP版本PHP4.2.X~5.2.XPHP4.0.6~5.2.XionCube
PHP引擎ZendOptimizer
(支持主流系统)
ionCube PHP Accelerator
(不包括windows的主流系统)
ZendOptimizer
支持文件格式php,inc或只能含有php标记代码的文件进行encode化处理。php,inc,xml,js,.css可对所有以文本形式保存的文件进行处理。对php及含有php标记的文件以encode方式加密(二进制),对非php文件采用Encrypt(加密方)式进行加密处理。但调用时需要采用其提供的API读入文件解密后使用。ionCube
IP地址加密不支持支持ionCube
物理MAC加密不支持支持ionCube
授权控制支持支持ZendOptimizer
代码时间限制支持支持ZendOptimizer
销售价格
(加密软件)
600美元约5160元(人民币)约5850元(人民币)ZendOptimizer
引擎价格免费免费ZendOptimizer
PHP4与PHP5加密兼容问题加密后会产生路径问题不会产生路径问题ionCube
配置情况需配置php.ini文件运行于相应Optimizer(1)固定方式,配置php.ini文件;
(2)绑定方式,加密时自动绑定解密用dll文件(生成ioncube目录)不需配置php.ini文件。
ionCube

        可以看出对于ionCube与ZendGuard来说各有优缺点,因此在选择产品时需要根据项目及代码情况来决定采用何种工具进行处理。


这篇关于PHP源码加密,zend guard,ioncube,加密php源代码。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/405560

相关文章

Java中的密码加密方式

《Java中的密码加密方式》文章介绍了Java中使用MD5算法对密码进行加密的方法,以及如何通过加盐和多重加密来提高密码的安全性,MD5是一种不可逆的哈希算法,适合用于存储密码,因为其输出的摘要长度固... 目录Java的密码加密方式密码加密一般的应用方式是总结Java的密码加密方式密码加密【这里采用的

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

使用Python制作一个PDF批量加密工具

《使用Python制作一个PDF批量加密工具》PDF批量加密‌是一种保护PDF文件安全性的方法,通过为多个PDF文件设置相同的密码,防止未经授权的用户访问这些文件,下面我们来看看如何使用Python制... 目录1.简介2.运行效果3.相关源码1.简介一个python写的PDF批量加密工具。PDF批量加密

PHP执行php.exe -v命令报错的解决方案

《PHP执行php.exe-v命令报错的解决方案》:本文主要介绍PHP执行php.exe-v命令报错的解决方案,文中通过图文讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下... 目录执行phpandroid.exe -v命令报错解决方案执行php.exe -v命令报错-PHP War

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

工厂ERP管理系统实现源码(JAVA)

工厂进销存管理系统是一个集采购管理、仓库管理、生产管理和销售管理于一体的综合解决方案。该系统旨在帮助企业优化流程、提高效率、降低成本,并实时掌握各环节的运营状况。 在采购管理方面,系统能够处理采购订单、供应商管理和采购入库等流程,确保采购过程的透明和高效。仓库管理方面,实现库存的精准管理,包括入库、出库、盘点等操作,确保库存数据的准确性和实时性。 生产管理模块则涵盖了生产计划制定、物料需求计划、

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。