皮皮网
皮皮网

【aide的ui源码】【tourex 源码】【琪琪源码】php代码加密源码程序_php代码加密源码程序是什么

来源:路由ip切换源码 发表时间:2024-12-24 02:11:39

1.php加密和解密的代码
2.如何用php做AES加密解密,代代码编码是码加密源码程UTF-8,跪谢求代码
3.php源代码保护——PHP加密方案分析&解密还原

php代码加密源码程序_php代码加密源码程序是加密什么

php加密和解密的代码

       php提供的加密函数不只是有MD5,虽然MD5是用得最多的,因为其安全性相对较好。但是现在也有网站通过提供庞大的数据库来对其进行破解(比如www.cmd5.com)。

       é™¤äº†MD5外,php还支持base加密,这个函数可以进行解密,但是这种方式加密的结果并不是很安全,当然,如果要求不是很高的话,可以使用。进行base加密的函数是:base_encode($str);相反,对加密后的结果进行解密的函数是:base_decode($str)。如:

       <?php

       $a="admin";

       $b=base_encode($a);

       $c=base_decode($b);

       echo "加密前:\$a=",$a,"<br />";

       echo "加密后:\$b=",$b,"<br />";

       echo "解密后:\$c=",$c,"<br />";

>

       å¦‚果对这种方式得到的加密结果不满意,你可以对加密后或者加密前的字符串进行可逆处理(可逆是为了方便解密),然后在进行加密或者相关处理就可以了。

       ä½™ä¸‹çš„自己搞定吧

如何用php做AES加密解密,编码是源码aide的ui源码UTF-8,跪谢求代码

       class CryptAES

       {

        protected $cipher = MCRYPT_RIJNDAEL_;

        protected $mode = MCRYPT_MODE_ECB;

        protected $pad_method = NULL;

        protected $secret_key = '';

        protected $iv = '';

        public function set_cipher($cipher)

        {

        $this->cipher = $cipher;

        }

        public function set_mode($mode)

        {

        $this->mode = $mode;

        }

        public function set_iv($iv)

        {

        $this->iv = $iv;

        }

        public function set_key($key)

        {

        $this->secret_key = $key;

        }

        public function require_pkcs5()

        {

        $this->pad_method = 'pkcs5';

        }

        protected function pad_or_unpad($str,程序 $ext)

        {

        if ( is_null($this->pad_method) )

        {

        return $str;

        }

        else

        {

        $func_name = __CLASS__ . '::' . $this->pad_method . '_' . $ext . 'pad';

        if ( is_callable($func_name) )

        {

        $size = mcrypt_get_block_size($this->cipher, $this->mode);

        return call_user_func($func_name, $str, $size);

        }

        }

        return $str;

        }

        protected function pad($str)

        {

        return $this->pad_or_unpad($str, '');

        }

        protected function unpad($str)

        {

        return $this->pad_or_unpad($str, 'un');

        }

        public function encrypt($str)

        {

        $str = $this->pad($str);

        $td = mcrypt_module_open($this->cipher, '', $this->mode, '');

        if ( empty($this->iv) )

        {

        $iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);

        }

        else

        {

        $iv = $this->iv;

        }

        mcrypt_generic_init($td, $this->secret_key, $iv);

        $cyper_text = mcrypt_generic($td, $str);

        $rt=base_encode($cyper_text);

        //$rt = bin2hex($cyper_text);

        mcrypt_generic_deinit($td);

        mcrypt_module_close($td);

        return $rt;

        }

        public function decrypt($str){

        $td = mcrypt_module_open($this->cipher, '', $this->mode, '');

        if ( empty($this->iv) )

        {

        $iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);

        }

        else

        {

        $iv = $this->iv;

        }

        mcrypt_generic_init($td, $this->secret_key, $iv);

        //$decrypted_text = mdecrypt_generic($td, self::hex2bin($str));

        $decrypted_text = mdecrypt_generic($td, base_decode($str));

        $rt = $decrypted_text;

        mcrypt_generic_deinit($td);

        mcrypt_module_close($td);

        return $this->unpad($rt);

        }

        public static function hex2bin($hexdata) {

        $bindata = '';

        $length = strlen($hexdata);

        for ($i=0; $i< $length; $i += 2)

        {

        $bindata .= chr(hexdec(substr($hexdata, $i, 2)));

        }

        return $bindata;

        }

        public static function pkcs5_pad($text, $blocksize)

        {

        $pad = $blocksize - (@strlen($text) % $blocksize);

        return $text . str_repeat(chr($pad), $pad);

        }

        public static function pkcs5_unpad($text)

        {

        $pad = ord($text{ strlen($text) - 1});

        if ($pad > strlen($text)) return false;

        if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) return false;

        return substr($text, 0, -1 * $pad);

        }

       }

       /*$keyStr = 'UITNLMUQCIM';

       $plainText = 'this is a string will be AES_Encrypt';

       $aes = new CryptAES();

       $aes->set_key($keyStr);

       $aes->require_pkcs5();

       $encText = $aes->encrypt($plainText);

       $decString = $aes->decrypt($encText);

       echo $encText,"n",$decString;*/

php源代码保护——PHP加密方案分析&解密还原

       PHP源代码保护策略详解

       PHP作为解释型语言,其源代码保护主要分为三类加密方案,代代码以及两种部署策略。码加密源码程下面我们将深入剖析这些方法。加密

       无扩展方案

       源代码混淆:非专业开发者常用的源码保护手段,简单混淆变量和函数名,程序如使用压缩、代代码tourex 源码base或异或编码,码加密源码程但容易被还原,加密注释可能保留。源码解密时,程序如遇到非打印字符或特殊字符编码问题,琪琪源码可通过格式化代码找到关键函数。

       手工解密

       对于简单的混淆,可通过调整编码并查找eval函数执行点,找到原始代码。PHP7处理异常时可能需要降级到PHP5.6。HeroesCharge源码

       自动化通用解密

       PHP扩展:通过编写扩展并Hook Zend引擎函数,如zend_compile_string,可以获取执行的源代码。如Beast扩展,虽然源码泄露容易导致解密,mirai源码但可通过ID阿分析找到加密密钥。

       源代码混淆与PHP扩展方案比较

       扩展方案的混淆更为深入,加密后执行环境不变,注释可能保留。例如,Beast扩展利用AES加密,但关键密钥隐藏在编译后的扩展中,可通过分析找到并解密。

       高级保护方案

       商业防护方案如_ZendGuard_、_SourceGuardian_、_IonCube_等,常通过修改引擎或直接操作opcode来增加保护,这些方法更难直接还原源代码。

       结论

       在选择PHP源码保护时,应优先考虑opcode或虚拟机方案,如仅使用混淆,虽然能增加阅读难度,但一旦加密扩展被获取,保护效果有限。确保加密扩展的安全性是关键。

相关栏目:综合