<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Fwolf's Blog &#187; extension - Fwolf's Blog</title>
	<atom:link href="http://www.fwolf.com/blog/post/tag/extension/feed" rel="self" type="application/rss+xml" />
	<link>http://www.fwolf.com/blog</link>
	<description>随心·随意·随缘·努力～</description>
	<lastBuildDate>Sun, 29 Aug 2010 14:52:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>用php_screw加密PHP代码</title>
		<link>http://www.fwolf.com/blog/post/420</link>
		<comments>http://www.fwolf.com/blog/post/420#comments</comments>
		<pubDate>Mon, 04 Aug 2008 10:55:36 +0000</pubDate>
		<dc:creator>Fwolf</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[encrypt]]></category>
		<category><![CDATA[extension]]></category>

		<guid isPermaLink="false">http://www.fwolf.com/blog/?p=420</guid>
		<description><![CDATA[开始之前，首先要澄清两个问题：第一，支持开源，不等于反对代码加密；第二，如果把不属于自己的东西（比如公司的）拿去开源，就更加不应该了。 以前知道的，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下的加密代码时，会当做明文引过来，解决方法有两种： 使用绝对路径引用放在include_path下的加密内容，如果是自己的主机，肯定没问题的； 使用相对路径来引用，比如在本项目的子目录内，这样也是没问题的。 [...]]]></description>
			<content:encoded><![CDATA[<p>开始之前，首先要澄清两个问题：第一，支持开源，不等于反对代码加密；第二，如果把不属于自己的东西（比如公司的）拿去开源，就更加不应该了。</p>

<p>以前知道的，PHP代码的加密都是用Zend的encoder，这东西不但是商业软件，好像还暴出过能够被破解的问题，所以就找到了替代的方案────<a href="http://sourceforge.net/projects/php-screw/">php_screw</a>，一个<a href="http://www.pm9.com/newpm9/itbiz/php/phpscrew/">日本人</a>开发的东东。</p>

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

<p>安装的环境需要：PHP5.x，zlib开启，autoconf，automake已安装。</p>

<p>测试环境：Ubuntu 8.04 hardy, PHP 5.2.3。</p>

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

<p>2、编译so文件：</p>

<pre><code>$ phpize
$ ./configure
$ make
</code></pre>

<p>如果出现这样的错误，那是因为autoconf没有安装：</p>

<pre><code>$ make
make: *** No targets specified and no makefile found.  Stop.
</code></pre>

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

<pre><code>extension = php_screw.so
</code></pre>

<p>4、编译用来加密文件的可执行文件：</p>

<pre><code>$ cd tools
$ make
</code></pre>

<p>tools目录下新生成的<code>screw</code>就是了，放到$PATH中就可以调用了，比如要加密一个文件：</p>

<pre><code>$ screw a.php
Success Crypting(a.php)
</code></pre>

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

<h4>Update @ 2008-09-01</h4>

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

<ol>
<li>使用绝对路径引用放在include_path下的加密内容，如果是自己的主机，肯定没问题的；</li>
<li>使用相对路径来引用，比如在本项目的子目录内，这样也是没问题的。</li>
</ol>

	Tags: <a href="http://www.fwolf.com/blog/post/tag/encrypt" title="encrypt" rel="tag">encrypt</a>, <a href="http://www.fwolf.com/blog/post/tag/extension" title="extension" rel="tag">extension</a>, <a href="http://www.fwolf.com/blog/post/tag/php" title="PHP" rel="tag">PHP</a><br />

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.fwolf.com/blog/post/300" title="针对$_SERVER['PHP_SELF']的跨站脚本攻击（XSS） (2007-03-18)">针对$_SERVER['PHP_SELF']的跨站脚本攻击（XSS）</a> (3)</li>
	<li><a href="http://www.fwolf.com/blog/post/443" title="配置安全的共享web服务器（抛砖引玉） (2009-06-09)">配置安全的共享web服务器（抛砖引玉）</a> (4)</li>
	<li><a href="http://www.fwolf.com/blog/post/400" title="选择Eclipse PHP Development Tools(PDT)作为PHP开发工具 (2008-05-03)">选择Eclipse PHP Development Tools(PDT)作为PHP开发工具</a> (8)</li>
	<li><a href="http://www.fwolf.com/blog/post/176" title="让phpmailer支持中文名称的附件 (2006-05-23)">让phpmailer支持中文名称的附件</a> (5)</li>
	<li><a href="http://www.fwolf.com/blog/post/155" title="终于能够通过phpmailer使用gmail账号发送邮件了 (2006-04-14)">终于能够通过phpmailer使用gmail账号发送邮件了</a> (50)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.fwolf.com/blog/post/420/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
