安装步骤:
1. 下载源码:
wget http://nchc.dl.sourceforge.net/project/php-screw/php-screw/1.5/php_screw-1.5.tar.gz

2. 解压缩:
tar zxvf php_screw-1.5.tar.gz

3. 通过README.en文件可以看到该版本软件包要求PHP5.x 环境,并要求zlib支持(通过执行脚本来检查)。如果你使用的是PHP4.X版本,请下载php_screw_1.3版本

4. 进入源码目录
#cd php_screw_1.5
root@Server:~/php_screw-1.5# vim php_screw.h
#define PM9SCREW “\tPM9SCREW\t”
#define PM9SCREW_LEN 10
#define PM9SCREW “\tLAURENCE\t”
#define PM9SCREW_LEN 9

每个加密的文件头部都一个很明显的字符串PM9SCREW, 这样很容易被人猜到是用screw加密的.

这个问题的解决需要在安装的第一步就开始. 该标识串在源码的php_screw.h中. 在编译之前, 可以更改这个字符串, 例如,更改为PeterHu, 相应的下面的长度就不再是10了, 而是\tPeterHu\t,一共7个了.

#define PM9SCREW        "\tPM9SCREW\t"
#define PM9SCREW_LEN 10

5. php_screw.h文件,如果不改这个文件,你加密的文件内容开头就会有 PM9SCREW ,你复制到google搜索下就知道是用screw模块加密的,虽然目前网上没发现解密算法,但以后就不一定,这么做就是为了隐藏加密算法,可以让别人不 知道你是用的什么算法加的密。改成COOL后10也要改成6.因为LAURENCE后字符长度是9发字符,如果你不对应加密后解密解析不了。
my_screw.h
root@Server:~/php_screw-1.5# vim my_screw.h
short pm9screw_mycryptkey[] = {
11152, 368, 192, 1281, 62
};
short pm9screw_mycryptkey[] = {
12852, 968, 192, 1281, 62, 269
};
自定义加密种子文件,这个可能是该程序的亮点,用你喜欢的文本编辑器打开源码目录下的my_screw.h,修改文件里面的数组文件,可以用数字添 加该数组的长度。数组越长,加密越可靠。而且该数组的长度不会影响加密以及你的PHP程序执行的速度.测试发现不要大于5位数,大了就会解密解析有问题。

6. phpize
#phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519

如果你的系统提示没有该命令就需要安装apt-get install php5-dev Centos 估计是yum -y install php5-devel ,如果还是提示上述命令不存在,可能是由于你的php没有安装在标准目录下,请到php安装目录的bin文件夹下寻找,确定是否有该文件。然后回到 php_scre_1.5目录下,执行
#/full/path/to/phpize
要成功执行phpize,需要有autoconf 和M4软件包。成功执行后,源码文件夹下出现configure文件
如果没有装错误如下:phpize command not found
解决:centOS: yum -y install php-devel
:RHEL :up2date -i php-devel

7. 配置
./configure
如果php安装在非标准目录,需要查看在phpize目录下是否有php-config文件,然后执行该目录如下
./configure –with-php-config=/full/path/to/php-config

8. 安装
make
make install

这个时候有时会出现一个问题:
‘zend_compiler_globals’ 没有名为 ‘extended_info’ 的成员make: *** [php_screw.lo] 错误 1
解决方法:
需要修改php_screw.c (有两个地方需要调整)
把CG(extended_info) = 1;
修改为:
CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;

9. php配置
在php.ini文件里面添加扩展
vim /usr/local/php/etc/php.ini
extension=php_screw.so
重启apache,查看phpinfo()里面应该有php_screw的相关信息

 
10、编译加密工具
    cd tools
    make
11、 将 tools 目录下加密用的工具 screw 拷贝到适当目录
     cp screw /usr/bin/
 
在根目录下创建hello.php 
<?echo 'hello';?>
php hello.php
输出:hello
screw hello.php
输出:Success Crypting(hello.php),说明加密成功,目录下会多出一个文件hello.php.screw,现在的hello.php已经是加密过的了,而多出的则是源文件的备份.
cat hello.php显示乱码.
php hello.php 输出hello.脚本方式解析加密文件成功了.

PS:编译过程中碰见的几个问题如下(解决方法)

1。 /root/php_screw-1.5/php_screw.c: In function ‘pm9screw_compile_file’:

解决方法:

需要修改php_screw.c

把第78,84,93行的org_compile_file(file_handle, type);
修改为:
org_compile_file(file_handle, type TSRMLS_CC);

然后再make就成功了。

2. /opt/soft/php_screw-1.5/php_screw.c: In function ‘zm_startup_php_screw’:/opt/soft/php_screw-1.5/php_screw.c:124: 错误:‘zend_compiler_globals’ 没有名为 ‘extended_info’ 的成员/opt/soft/php_screw-1.5/php_screw.c: In function ‘zm_shutdown_php_screw’:/opt/soft/php_screw-1.5/php_screw.c:133: 错误:‘zend_compiler_globals’ 没有名为 ‘extended_info’ 的成员make: *** [php_screw.lo] 错误 1

解决方法:
需要修改php_screw.c

把CG(extended_info) = 1;
修改为:
CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;

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

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

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

命令都实验过成功的.........应该没什么再补充的咯.....

转自:https://blog.csdn.net/songtianyang01/article/details/36184375

本人实操成功

php_screw安装,使用的更多相关文章

  1. liunx 下安装 php_screw 扩展 以及报错处理

    php_screw 是一个 php 源代码加密扩展.首先来看一下 php_screw 在liunx下是如何安装的 首先 去源完整下载 安装包,现在的最新版是 1.5,我们就用1.5 来做个实例 如果有 ...

  2. php_screw加密安装

    php_screw的安装与使用 1.下载:http://sourceforge.net/projects/php-screw/files/ php文件通常以文本格式存贮在服务器端, 很容易被别人读到源 ...

  3. Linux下安装php screw

    1.下载地址:http://sourceforge.net/projects/php-screw/ 2. tar zxvf php_screw_1.5.tar.gz cd php_screw_1.5 ...

  4. linux中centros6.7安装php5.6,httpd-2.2.19(web产品化)遇到的问题总结

    前段时间在公司实习,web系统产品化的过程踩了很多坑,在这边总结一下,由于对linux不是很懂,全是自己一步步一个一个问题解决的 1,查看系统中是否安装apache,php,mysql环境 Apach ...

  5. centos7.6升级ssh7.9、安装PHP7.2、Nginx1.15.9、PHP加密扩展php_screw1.5

    1.centos7 安装PHP7.2版本 #查询是否安装过php yum list installed | grep php yum provides php #移除php yum remove ph ...

  6. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  7. 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法

    如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...

  8. Sublime Text3安装JsHint

    介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...

  9. Fabio 安装和简单使用

    Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...

随机推荐

  1. javascript 字符串处理

    ---恢复内容开始--- 最近几次参加前端实习生招聘的笔试,发现很多笔试题都会考到字符串的处理,比方说去哪儿网笔试题.淘宝的笔试题等.如果你经常参加笔试或者也是一个过来人,相信你也跟我一样,发现字符串 ...

  2. oo第3次博客作业

    一.规格化设计的发展历史 20世纪60年代,软件出现严重的危机Dijkstra提出了goto语句的危害,由此引发了软件界长达数年的论战,并产生了结构化的程序设计方法.随着计算机 技术的发展,结构设计化 ...

  3. 【sklearn入门】通过sklearn实现k-means并可视化聚类结果

    import numpy as np from sklearn.cluster import KMeans from mpl_toolkits.mplot3d import Axes3D import ...

  4. Java课程----自我介绍

      我是一名信息院的学生,今年今日是大二下学期,马上就要大三了,自己对于专业的认知还是太浅.主要是因为之前的大学生活特别懒散,并不积极向上.但是我想说的是,我们大学生,一定不要碌碌无为,要有所作为.我 ...

  5. Android大作业

    1.项目成员 邓乾尧 学号:1600802005 班级:161  博客:http://www.cnblogs.com/2575590018dqy/ 韦家城 学号:1600802026 班级:161  ...

  6. matlab批量读取一个文件夹里类似命名的mat文件

    参考网址: Matlab读取同一路径下多个txt或mat文件总结 matlab 批量读取数据文件.mat .dat 整理:matlab批量读入数据文件的方法 首先命名方式体现在只是名字里数字有变化,其 ...

  7. ios12更新开发者需要做什么

    1.StatusBar内部结构改变 现象:crash crash log: -[_UIStatusBarIdentifier isEqualToString:]: unrecognized selec ...

  8. mysqlQL 5.7 安装报错CMake Error at cmake/boost.cmake:81 (MESSAGE)

    CMake Error at cmake/boost.cmake:81 (MESSAGE): You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BO ...

  9. PC端的软件端口和adb 5037端口冲突解决方案

    引用https://www.aliyun.com/jiaocheng/32552.html 阿里云 >  教程中心   >  android教程 >  PC端的软件端口和adb 50 ...

  10. token简单的使用

    这里对token的简单的使用进行测试和描述 其原理就不在这里描述了! 具体测试流程:用户在前端请求登录——>在后台验证通过后根据用户ID生成token——>请求返回时将token带给前端并 ...