惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园_首页
大猫的无限游戏
大猫的无限游戏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog
B
Blog RSS Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
P
Proofpoint News Feed
MyScale Blog
MyScale Blog
Engineering at Meta
Engineering at Meta
量子位
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
Tailwind CSS Blog
Stack Overflow Blog
Stack Overflow Blog
N
Netflix TechBlog - Medium
T
The Blog of Author Tim Ferriss
U
Unit 42
aimingoo的专栏
aimingoo的专栏
博客园 - 叶小钗
博客园 - 【当耐特】
云风的 BLOG
云风的 BLOG
博客园 - Franky
博客园 - 聂微东

博客园 - torome

做开发这么多年,都没有一个自己的站? 我希望四年前就有人告诉我的事情 gSoap下Server端接口函数的数据传出 gsoap简单实例 js的comet各个浏览器封装lib 原来CASTLE RC2 还不支持IBATIS 1.6,郁闷了很久 硬盘数据恢复原理与方法 用QQWry.Dat作数据源实现IP地址检索 缓存用户控件实例 Forms验证中的roles URL重写 使用csc命令将.cs文件编译成.dll的过程 automation服务器不能创建对象 解决 ASP.NET 中文本框上按回车时系统缺省提交按钮的问题 ASP.NET生成静态HTML页面 sql server 2000 以前的某个程序安装已在安装计算机上创建挂起的文件操作解 马斯若需求层次论 运行VS.net2003出现"找不到一个或多个组件.请重新安装" 人生的35个好习惯
用php_screw加密PHP代码
torome · 2011-03-13 · via 博客园 - torome

开始之前,首先要澄清两个问题:第一,支持开源,不等于反对代码加密;第二,如果把不属于自己的东西(比如公司的)拿去开源,就更加不应该了。

以前知道的,PHP代码的加密都是用Zend的encoder,这东西不但是商业软件,好像还暴出过能够被破解的问题,所以就找到了替代的方案────php_screw,一个日本人开发的东东。

php_screw非常小巧,没有仔细看过它的算法,但从说明文档中看,可以自行更改SEED,然后自行编译so和可执行档。如果够牛的话,甚至可以自己去更改算法。不管怎样,对于我们这些“普通人”来说,这种加密应该就够了吧,如果真想滴水不漏,那还是不要公开的好,虽然作者说的并不是很容易就破解,但指不定哪儿有牛群呢不是么?

安装的环境需要:PHP5.x,zlib开启,autoconf,automake已安装。

测试环境:Ubuntu 8.04 hardy, PHP 5.2.3。

1、 解压,更改my_screw.h,里面的几个数字就是SEED,相当于密码,可以随意更改、增加,并且数字的多少不影响解密的速度。

2、编译so文件:

$ phpize $ ./configure $ make 

如果出现这样的错误,那是因为autoconf没有安装:

$ make make: *** No targets specified and no makefile found.  Stop. 

3、安装so文件,编译好的文件在modules目录下,将其拷贝到php extension存放的位置,比如/usr/lib/php5/20060613+lfs下,然后在php.ini中增加:

extension = php_screw.so 

4、编译用来加密文件的可执行文件:

$ cd tools $ make 

tools目录下新生成的screw就是了,放到$PATH中就可以调用了,比如要加密一个文件:

$ screw a.php Success Crypting(a.php) 

加密后的a.php执行正常,同时screw还会把原来没有加密的文件改名为.screw文件作为备份。

Update @ 2008-09-01

加密之后,还有个小问题,用require或include引用放在include_path下的加密代码时,会当做明文引过来,解决方法有两种:

  1. 使用绝对路径引用放在include_path下的加密内容,如果是自己的主机,肯定没问题的;
  2. 使用相对路径来引用,比如在本项目的子目录内,这样也是没问题的。