加密软件(php_screw)

》下载网站:http://sourceforge.net/projects/php-screw/

》描述:php文件通常以文本格式存贮在服务器端, 很容易被别人读到源代码, 为了对

源代码进行保护, 可以采用对源代码进行加密的方式.要实现该功能需要两部分

一是:加密程序,实现对PHP文件的加密

另一个就是:对加密过的PHP文件进行解析, 以得到运行结果. 前者的实现比较简

单, 就是一程序而已. 后者的实现大部分都是通过php module的形式来实现的

》php_screw(螺丝钉)可以实现以上的功能.最新版本是1.5,可以在sourceforge上下载.

》php_screw 是一个日本人开发的PHP加密程序,但只能在LINUX下运行

安装

》描述:安装的目的其实就是产生两个文件,一个是用于加密PHP文件的screw, 另一

个就是php加载的解析模块php_screw.so

安装环境

系统:centos 5.3

软件:Apache 2.2.9

PHP 5.2.10

以上环境全部是自己下载配置安装的。具体的Apache+php+mysql安装方法请从网上搜索。

安装

1.用tar解压缩 tar -zxvf php_screw-1.5.tar.gz

2.进入php_screw-1.5目录开始安装

cd php_screw-1.5

phpize

关于phpize ,它在php5-dev扩展模块中 只要安装php5-dev模块就行了。

./confiugre

3.设置自己用来加密的密码

复制代码 代码如下:

 

vi my_screw.h

 -- Please change the encryption SEED key (pm9screw_mycryptkey) into the

    values according to what you like.

    The encryption will be harder to break, if you add more values to the

    encryption SEED array. However, the size of the SEED is unrelated to

    the time of the decrypt processing.

 *  If you can read and understand the source code, to modify an original

        encryption logic will be possible. But in general, this should not

        be necessary.

   OPTIONAL: Encrypted scripts get a stamp added to the beginning of the

        file. If you like, you may change this stamp defined by

        PM9SCREW and PM9SCREW_LEN in php_screw.h. PM9SCREW_LEN must

        be less than or equal to the size of PM9SCREW.

 

4.编译

make

5.拷贝modules目录下的php_screw.so文件到/usr/lib/php5/extension目录下

cp modules/php_screw.so /usr/lib/php5/extension/

6.编辑php.ini文件

在php.ini文件里,加入如下语句

extension=php_screw.so

7.重新启动Apache

/srv/apache/bin/apachectl restart

8.编译加密工具

cd tools

make

9.将tools目录下加密用的工具screw拷贝到适当目录

cp screw /usr/bin/

经过以上的10步,就已经把php_screw-1.5全部安装完成了。并且现在的php也已经支持解释加密过的php文件了

使用

1.现写一个要加密的php文件。

我写了如下的一个用来测试php速度的test.php文件

复制代码 代码如下:

 

<?

$a=0;

$t=time();

for($i=0;$i<5000000;$i++)

  {$a=$a*$i;}

$t1=time();

echo "<p>";

echo "It used:";

echo $t1-$t;

echo "seconds";

?>

 

将上面的test.php文件放到/var/www/目录下。通过浏览器访问,将显示出php在大量计算时的速度(粗略估计)

2.将我们写的php文件加密

cd /var/www/

screw test.php

我们加密后,现在目录下的test.php文件就是我们已经加密的了。而源文件被改名为test.php.screw存放了。

我们现在再测试一下test.php,看看能否正常使用?速度如何?

我比较了一下,加密前后的速度大概一样,基本没有太多的损失。

3.批处理加密文件

在debian, apache2, php5上测试过对.html文件加密后,能正确解析;

php_screw如何对当前目录下,对目录下包含的文件,以及包含目录下的文件进行整体加密

find ./ -name "*.php"-print|xargs -n1 screw //加密所有的.php文件

find ./ -name "*.screw" -print/xargs -n1 rm //删除所有的.php源文件的备份文件

这样在当前目录下的所有.php文件就全部背加密了

Layman 对PHP源码进行加密保护的更多相关文章

  1. php源码安全加密之PHP混淆算法.

    php源码安全加密的前世今生,本想发在教程区中.不知道怎么发,就写在这里面吧.PHP加密,解密是一直的话题,本人菜鸟,今天就简单向大家介绍一下并说说其中原理.提供一些加密的混淆算法.一\PHP的加密总 ...

  2. PHP源码进行加密(仅linux)

    加密软件(php_screw) 1.下载网站:http://sourceforge.net/projects/php-screw/ 2.描述: php文件通常以文本格式存贮在服务器端, 很容易被别人读 ...

  3. [.NET产品源码保护].NET防止反编译(非混淆加密)

    .NET产品源码保护产生的背景: .NET源码加密方案支持C#及VB.NET等语言开发的ASP.NET及WINFORM应用.利用.NET支持托管代码与非托管代码共存的特性,将C#代码经过处理放于非托管 ...

  4. .NET产品源码保护,.NET防止反编译,c#/vb.net 防反编译

    .NET产品源码保护产生的背景: .NET源码加密方案支持C#及VB.NET等语言开发的ASP.NET及WINFORM应用.利用.NET支持托管代码与非托管代码共存的特性,将C#代码经过处理放于非托管 ...

  5. c# p2p 穿透(源码加密)

    http://blog.oraycn.com/ESFramework_Demo_P2P.aspx 测试,完全OK!  我很喜欢这个.可以源码是加密的!我希望实现 web 版本的p2p视频观看,aehy ...

  6. 真正shopex分销王2代DRP系统源码正版安装版本终身商业授权

    真正ShopEx分销王系统2代正版授权.该商业程序已经完整授权,已测试100%完整能用.很多朋友来问是否免费版的源码?错,这是和官方一样的平台版本,100%无限制功能使用,跟官方付费使用的授权版一样. ...

  7. Java Web开发框架Spring+Hibernate整合效果介绍(附源码)

    最近花了一些时间整合了一个SpringMVC+springAOP+spring security+Hibernate的一套框架,之前只专注于.NET的软件架构设计,并没有接触过Java EE,好在有经 ...

  8. 2014年4月底至5月初51Aspx源码发布详情

    精灵豆会员管理系统源码  2014-4-21 [VS2010]功能介绍:精灵豆会员管理系统业务管理平台采用微软选进的C#语言开发,采用大型数据库,具有比较高的执行效率和高安全性.系统分为消费管理,会员 ...

  9. Java Web开发框架Spring+Hibernate整合效果介绍(附源码)(已过期,有更好的)

    最近花了一些时间整合了一个SpringMVC+springAOP+spring security+Hibernate的一套框架,之前只专注于.NET的软件架构设计,并没有接触过Java EE,好在有经 ...

随机推荐

  1. vs使用fscanf和fprintf错误警告处理

    严重性代码说明项目文件行 禁止显示状态错误 C4996 fopen('fscanf'.strcmp):This function or variable may be unsafe. 最全解决办法(转 ...

  2. MyEclipse2017 安装MAVEN插件办法

    笔者辛苦所写,如要留用,请标明出处,谢谢 —————————————————————————————————————————————————————— 笔者由于用到的项目使用到MAVEN,为了以后搭建 ...

  3. AD18 PCB中添加中文字符串显示乱码问题解决

    该问题是由于字符串的自体类型设置问题,AD默认是[stroke],我们点击[TrueType]即可正常显示.PS:AD18搞啥呢,默认显示输入内容不行吗,找半天!!!

  4. springBoot整合spring security实现权限管理(单体应用版)--筑基初期

    写在前面 在前面的学习当中,我们对spring security有了一个小小的认识,接下来我们整合目前的主流框架springBoot,实现权限的管理. 在这之前,假定你已经了解了基于资源的权限管理模型 ...

  5. Android开发之将图片文件转化为字节数组字符串,并对其进行Base64编码处理

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985, 转载请说明出处. /** * @将图片文件转化为字节数组字符串,并对其进行Base64编码处理 * ...

  6. Android开发工程师面试题总结。android开发面试经验

    1:Android中五种数据存储方式分别是什么?他们的特点?     (1)SharedPreference,存放较少的五种类型的数据,只能在同一个包内使用,生成XML的格式存放在设备中 (2) SQ ...

  7. 【转】Android DrawingCache

    转自:http://magiclen.org/android-drawingcache/ 日期: 2014 年 8 月 27 日 | 作者: Magic Len 開發Android的時候,在許多情況下 ...

  8. 面试:为了进阿里,又把并发CAS(Compare and Swap)实现重新精读一遍

    该系列文章已收录在公众号[Ccww技术博客],原创技术文章第一时间推出 前言 在面试中,并发线程安全提问必然是不会缺少的,那基础的CAS原理也必须了解,这样在面试中才能加分,那来看看面试可能会问那些问 ...

  9. 反射机制(Java)

    反射机制 今天闲来无事,对反射机制http://www.cnblogs.com/jqyp/archive/2012/03/29/2423112.html阅读一番,整理了下这方面的知识以及自己的一些心得 ...

  10. 13_Python的面向对象编程-类class,对象object,实例instance

    1.面向对象概述 1.类是用来描述对象的工具,把拥有相同属性和行为的对象分为一组     2.对象是由类实例化出来的一个具体的对象         属性: 对象拥有的名词,用变量表示         ...