php 代码加密类,大众能够按照自己的需求进行修改,原类如下,是对之前的加密解密类的有一次修改,期盼能分享给大众。这次在ubuntu下测试无问题,与之前的版本的区别在于,这次的版本更加的通用性。
[php] view plain copy <?php /* * @auther:wangyaofeng * @time:2014.11.6 * @action:对php项目进行加密处理,重视倘若项目中存在框架目录或无必要加密的目录,请提前移出 * */ class Encryption{ private $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($filename){ //$filename=index.php; $T_k1=$this->RandAbc(); $T_k2=$this->RandAbc(); $vstr=file_get_contents($filename); $v1=base64_encode($vstr); $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%6Crkd
|