• PHP代码混淆与加密——php screw plus


    php是一个开源的、广受欢迎的语言,php应用常常是以代码明文的方式发布,但是有时候对于发布的代码我们想要进行保护,需要对php代码进行混淆与加密,让增加破解者的逆向难度,从而达到保护自己成果的目的。

    在市面上流行的加密方案非常多,比如:

    Zend Guard:遗憾的是不支持PHP7

    IonCube PHP Encoder:优于Zend Guard。但是收费。

    Swoole Compiler:这一款工具进行了很深入的编译优化,相当牛B。很可惜,也收费,还很贵。

    PHP Screw Plus:基于扩展来加解密,采用AES256算法,还可阻止执行未经许可的php文件。性能、防破解各项指标非常均衡,更重要的是免费。

    今天,我们重点介绍的就是PHP Screw Plus这一款工具。因为名字实在有点长,以下简称Screw。

    在开始介绍之前,假设大家对Linux操作、PHP扩展编译已经了解。因为Screw只能运行在Linux平台上,所以我们都会在CentOS 7.5上进行操作演示。(PHP谁还跑在Windows上呢-_-)

    1、下载代码:点击链接传送

    这里,我们将下载的zip压缩包放在/www/setup/splot-php-screw-plus-master.zip

    解压后,我们会得到/www/setup/php-screw-plus,进入这个目录。

    2、编译扩展(这一步是编译扩展的套路操作,如果不清楚,可以给我私信)

    phpize

    ./configure --with-php-config=php-config的路径

    make

    make install

    修改php.ini

    重启php可以看到phpinfo里成功加载了扩展php_screw_plus

    备注,因为代码的加密是基于密钥的,所以在编译之前可以修改源码包下的php_screw_plus.h里的CAKEY对默认密钥进行修改,保存之后再进行编译,如下图:

    3、编译加密工具

    执行完第2步后,把扩展编译完成了,但是加密代码的工作还没有编译出来。这时候我们发现/www/setup/php-screw-plus目录下多了一个tools目录。进入tools目录执行make,可以编译出screw,这个就是加密php的工具:

    4、实验

    1) 假设站点根目录为/www/wwwroot/default。进入这个目录,新建index.php,内容如下:

    2) 执行以下面令,加密这个文件:

    /www/setup/php-screw-plus/tools/screw  index.php

    3) 加密后的代码如下:

     是不是认不出来了:)

     4) 从浏览器访问index.php,我们可以看到:

    到这里,我们就大功告成了。在Laravel框架下,这个扩展没有任何问题,亲测有效,所以大家放心使用吧。因为这是一个开源工程,所以大家也可以在gitee上提交自己的push。

    如果我们想对加密后的文件进行解密,只需要运行/www/setup/php-screw-plus/tools/screw index.php -d

    即加密代码多了一个-d选项,之后就可以还原出明文。注意,如果是在另外的环境下进行解密,那扩展工具的key一定要一致,否则是解密不出来的。

    好了,这个工具介绍到此结束。除了这个工具,这个世界上不缺大神,php-beast也是很值得一试的。github上有完整的说明,就不一一列举了,大家点击传送门吧:)

  • 相关阅读:
    javascript DOM 操作
    遍历Map集合四中方法
    遍历List集合的三种方法
    Java中static关键字用法总结
    java中this关键字的作用
    深入理解Java的接口和抽象类
    MySQL查看所有用户及拥有权限
    MySQL新建用户,授权
    VMware Ubuntu如何连接互联网
    控件不接收用户交互的情况以及事件响应顺序
  • 原文地址:https://www.cnblogs.com/ddcoder/p/13416506.html
Copyright © 2020-2023  润新知