本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果。ToolFk还支持  BarCode条形码在线生成、 QueryList采集器、 PHP代码在线运行、 PHP混淆、加密、解密、 Python代码在线运行、JavaScript在线运行、YAML格式化工具、HTTP模拟查询工具、HTML在线工具箱、JavaScript在线工具箱、CSS在线工具箱、JSON在线工具箱、Unixtime时间戳转换、Base64/URL/Native2Ascii转换、CSV转换工具箱、XML在线工具箱、WebSocket在线工具、Markdown 在线工具箱、Htaccess2nginx 转换、进制在线转换、在线加密工具箱、在线伪原创工具、在线APK反编译、在线网页截图工具、在线随机密码生成、在线生成二维码Qrcode、在线Crontab表达式生成、在线短网址生成、在线计算器工具。等20多个日常程序员开发工具,算是一个非常全面的程序员工具箱网站。

網站名稱:ToolFk
網站鏈結:https://www.toolfk.com/
工具链接:https://www.toolfk.com/tool-convert-php

代码教學

本代码[在线PHP加密、解密、混淆源代码工具]依赖于CSDN一位朋友的代码库,由于很久之前借鉴过来的。所以没记住他的博客链接。在此抱歉。实现的PHP代码如下

STEP 1

STEP 2

是依赖这个PHP类。使用时直接NEW 一个对象,调用它的方法就行了。再次感谢作者的免费提供。

class PhpEncode
{function is_cli(){return php_sapi_name() == 'cli' ? 1 : 0;}function rstr() //Random String Function{$len = rand(3, 6);$chr = '';for ($i = 1; $i <= $len; $i++) {$chr .= rand(0, 1) ? chr(rand(65, 90)) : chr(rand(97, 122));}return $chr;}function enjumble($data) //Custom Encoding + Base64 + gzinflate(){for ($i = 0; $i < strlen($data); $i++) {$data[$i] = chr(ord($data[$i]) + 1);}return base64_encode(gzdeflate($data, 9));}function striptag($in) //Remove '= 5; $i++) {$in[$i] = ' ';}return $in;} else {return $in;}}function makeoutfile($str){$funcname = $this->rstr();$varname = '$' . $this->rstr();$template = "enjumble($str);$template = $template . $str . "\"));?>";return $template;}function confound($input){return $this->makeoutfile($this->striptag($input));}//=====encode 2private $c='';//存储密文private $s='',$q1,$q2,$q3,$q4,$q5,$q6;//存储生成的加密后的文件内容//如果不设置一个值,isset会表示不存在;private $file='';//读取文件的路径private $source='',$target='';//构造函数,实例化时调用初始化全局变量;public function __construct(){//初始化全局变量$this->initialVar();//echo "hello \n";}/**@input  $property_name,$value*@output*   魔法方法,对变量进行设置值;可根据需求进行处理。若直接去除if判断表示可用设置任何属性的值,包括不存在的属性;*/public function __set($property_name,$value){//定义过的变量;if(isset($this->$property_name)){$this->$property_name = $value;}else{//异常处理,处理未声明的变量赋值;可根据需求进行处理。throw new Exception("property does not exist");}}//魔法方法 取出变量的值;public function __get($property_name){if(isset($this->$property_name)){return $this->$property_name;}else{//throw new Exception("property does not exist");return NULL;}}//取随机排序private function RandAbc($length=""){//随机排序取回$str="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";return str_shuffle($str);}//对明文内容进行加密处理private function ciphertext($input){//$filename='index.php';$T_k1=$this->RandAbc();$T_k2=$this->RandAbc();$v1=base64_encode($input);$c=strtr($v1,$T_k1,$T_k2);$this->c=$T_k1.$T_k2.$c;return $this;}//初始化变量private function initialVar(){$this->q1="O00O0O";//base64_decode$this->q2="O0O000";//$c(原文经过strtr置换后的密文,由 目标字符+替换字符+base64_encode(‘原文内容’)构成)$this->q3="O0OO00";//strtr$this->q4="OO0O00";//substr$this->q5="OO0000";//52$this->q6="O00OO0";//urldecode解析过的字符串(n1zb/ma5\vt0i28-pxuqy*6%6Crkdg9_ehcswo4+f37j)}//生成加密后的模板(复杂版本);private function model(){//$c = $this->c;//$this->initialVar();$this->s='q6.'=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");$'.$this->q1.'=$'.$this->q6.'{3}.$'.$this->q6.'{6}.$'.$this->q6.'{33}.$'.$this->q6.'{30};$'.$this->q3.'=$'.$this->q6.'{33}.$'.$this->q6.'{10}.$'.$this->q6.'{24}.$'.$this->q6.'{10}.$'.$this->q6.'{24};$'.$this->q4.'=$'.$this->q3.'{0}.$'.$this->q6.'{18}.$'.$this->q6.'{3}.$'.$this->q3.'{0}    .$'.$this->q3.'{1}.$'.$this->q6.'{24};$'.$this->q5.'=$'.$this->q6.'{7}.$'.$this->q6.'{13};$'.$this->q1.'.=$'.$this->q6.'{22}.$'.$this->q6.'{36}    .$'.$this->q6.'{29}.$'.$this->q6.'{26}.$'.$this->q6.'{30}.$'.$this->q6.'{32}.$'.$this->q6.'{35}.$'.$this->q6.'{26}.$'.$this->q6.'{30};    eval($'.$this->q1.'("'.base64_encode('$'.$this->q2.'="'.$this->c.'";  eval(\'?>\'.$'.$this->q1.'($'.$this->q3.'($'.$this->q4.'($'.$this->q2.',$'.$this->q5.'*2),$'.$this->q4.'($'.$this->q2.',$'.$this->q5.',$'.$this->q5.'),    $'.$this->q4.'($'.$this->q2.',0,$'.$this->q5.'))));').'"));?>';return $this;}//创建加密文件private function build($target){//$this->encodes("./index.php");//$this->model();$fpp1 = fopen($target,'w');fwrite($fpp1,$this->s) or die('写入是失败!');fclose($fpp1);return $this;}//加密处理 连贯操作public function encode($input){//$file = "index.php";//连贯操作其实就是利用函数处理完后返回自身return $this->ciphertext($input)->model()->s;}//解密public function decode($out){//读取要解密的文件try{return @$this->decodeMode($out)->s;}catch (FatalThrowableError $e){return "decode error";}}//解密模板,得到解密后的文本private function decodeMode($fpp1){//以eval为标志 截取为数组,前半部分为密文中的替换掉的函数名,后半部分为密文$m = explode('eval',$fpp1);//对系统函数的替换部分进行执行,得到系统变量$varStr = substr($m[0],strpos($m[0],'$'));//执行后,后续就可以使用替换后的系统函数名eval($varStr);//判断是否有密文if(!isset($m[1])){return $this;}//对密文进行截取 {$this->q4}  substr$star =  strripos($m[1],'(');$end = strpos($m[1],')');$str = ${$this->q4}($m[1],$star,$end);//对密文解密 {$this->q1}  base64_decode$str = ${$this->q1}($str);//截取出解密后的  核心密文$evallen = strpos($str,'eval');$str = substr($str,0,$evallen);//执行核心密文 使系统变量被赋予值 $O0O000eval($str);//并不能将如下段封装,因为 ${$this->qn} 并不能在全文中起作用$this->s = ${$this->q1}(${$this->q3}(${$this->q4}(${$this->q2},${$this->q5}*2),${$this->q4}(${$this->q2},${$this->q5},${$this->q5}),${$this->q4}(${$this->q2},0,${$this->q5})));return $this;}//递归读取并创建目标目录结构private function targetDir($target){if(!empty($target) )  {if(!file_exists($target)){mkdir($target,0777,true);}else{chmod($target,0777);}}}//递归解密 对指定文件夹下的php文件解密public function decodeDir($source,$target=""){if(is_dir($source)){$this->targetDir($target);$dir = opendir($source);while(false!=$file=readdir($dir)){//列出所有文件并去掉'.'和'..' 此处用的实例为thinkphp框架,所以默认排除里Thinkphp目录,用户可以按照自己的需求设置if($file!='.' && $file!='..' && $file !='ThinkPHP'){$path = $target.DIRECTORY_SEPARATOR.$file;$sourcePath =  $source.DIRECTORY_SEPARATOR.$file;$this->decodeDir($sourcePath,$path);}}}else if(is_file($source)){$extension=substr($source,strrpos($source,'.')+1);if(strtolower($extension)=='php'){$this->decode($source,$target);}else{//不是php的文件不处理copy($source, $target);}//return;}}//递归加密 对指定文件夹下的php文件加密public function encodeDir($source,$target){if(is_dir($source)){$this->targetDir($target);$dir = opendir($source);while(false!=$file=readdir($dir)){//列出所有文件并去掉'.'和'..'if($file!='.' && $file!='..' && $file !='ThinkPHP'){$path = $target.DIRECTORY_SEPARATOR.$file;$sourcePath =  $source.DIRECTORY_SEPARATOR.$file;$this->encodeDir($sourcePath,$path);}}}else if(is_file($source)){$extension=substr($source,strrpos($source,'.')+1);if(strtolower($extension)=='php'){$this->encode($source,$target);}else{copy($source, $target);}}}
}

值得一試的三個理由:

  1. 整合各種程序员开发中经常使用的开发测试工具。

  2. 简洁美观大气的网站页面

  3. 支持 在线格式化执行代码、APK在线反编译、在线高强度密码生成、在线网页截图 等二十多種工具服务

  4. 同时还推荐一下它的姐妹网 www.videofk.com 视频下载工具箱

本文链接:http://www.hihubs.com/article/360

转载于:https://www.cnblogs.com/videofk/p/9912206.html

免费在线PHP加密、解密、混淆源代码工具-toolfk.com相关推荐

  1. 免费在线PHP加密、解密、混淆源代码工具- toolfk.com

    本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果.Tool ...

  2. QueryList免费在线网页采集数据抓取工具-toolfk.com

    本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果.Tool ...

  3. 在线BASE64加密解密、UrlEncode编码/解码、native/ascii在线转换工具 -toolfk程序员工具网

    本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果.Tool ...

  4. 在线base64加密解密工具

    在线base64加密解密工具 在线base64加密解密工具 本工具支持对字符串进行base64加密和解密(严格来说,只能算是字符串编码),纯客户端计算,数据不会上传到服务器中,请放心使用. https ...

  5. 在线AES加密/解密工具

    在线AES加密/解密工具 在线AES加密/解密工具 使用工具测试加密结果 http://lzltool.com/AES 使用工具测试解密结果 http://lzltool.com/AES

  6. 在线XXEncode加密/解密(XXEncode编码/解码)工具

    在线XXEncode加密解密工具,提供XXEncode编码(XX编码).XXencode解码(XX解码).以及XXencode编码原理介绍.编码算法说明. 工具链接:http://www.atoolb ...

  7. 在线RSA加密解密,RSA2加密解密(SHA256WithRSA)

    为什么80%的码农都做不了架构师?>>>    bejson增加 在线RSA加密解密,RSA2加密解密(SHA256WithRSA) 地址:http://www.bejson.com ...

  8. JavaScript Eval Encode/Decode JavaScript Eval 在线加密/解密, 编码/解码工具

    eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fr ...

  9. 【C#文件锁】C#加密解密文件小工具

    前面一篇博文中,分享了一个文件夹加密小工具,该工具是操作文件夹名称的方法实现文件夹的一般加密,文件夹中的文件(视频.图片等)都原封不动的保存在那里. DebugLZQ在网上搜索相关文件加密的程序,发现 ...

最新文章

  1. gdb 查看,执行汇编代码
  2. C语言小知识点练习总结
  3. 换种思路去理解设计模式
  4. 学习activemq,在spring中activemq的配置信息
  5. 商城是用jsp还是php,建设网上购物网站使用JSP系统还是ASP系统
  6. [leetcode]Symmetric Tree
  7. 【Programming Clip】点分十进制IP和长整型转换
  8. mysql查询,left join(求并集),where(求交集)
  9. 豆瓣书籍数据爬取与分析
  10. C++ #include iostream #include iostream.h #include string.h区别及作用
  11. HTK在win7下安装的一些问题
  12. try……catch的异常捕获机制
  13. 如何彻底关闭FF新推荐弹出广告
  14. 交互设计起源于计算机的人机界面设计的例子,交互设计概述.ppt
  15. “食尸鬼行动”攻击30多个国家超过130家企业 包括中国
  16. 为何汇新云汇聚了如此多的产品经理?
  17. 2018最新win10激活密匙
  18. Riche million espérer interroger chasse.
  19. 童甫带您去了解海航科技集团旗下的小二租车近况
  20. linux编程学习路线,秘辛:2019上半年程序员生存报告

热门文章

  1. mysql用户权限与安全实例_mysql用户权限管理实例分析
  2. k8s springboot 文件_Springboot整合Spring Cloud Kubernetes读取ConfigMap支持自动刷新配置的教程...
  3. python *args **kargs
  4. CUDA TOOlkit Programming Guide K. Unified Memory Programming
  5. 2.2 logistic 回归
  6. Numpy Scalars(标量)
  7. php判断数值大小_php 快速判断一个数字属于什么范围的实现方法
  8. e0266 cout 不明确_荐书 | 不正义的时代,识别不正义的多重面孔
  9. 电脑尺寸大小在哪里看_科技资讯:电脑弹出本地计算机上的服务启动后停止的提示在哪里看...
  10. 基于matlab的prony方法实现,基于MATLAB的Prony方法实现