当前位置:首页 > 代码 > 正文

thinkphp代码加密(thinkphp代码加密后无法访问)

admin 发布:2022-12-19 07:14 116


本篇文章给大家谈谈thinkphp代码加密,以及thinkphp代码加密后无法访问对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

thinkphp怎么加密url参数

/**

 * 系统加密方法

 * @param string $data 要加密的字符串

 * @param string $key  加密钥

 * @param int $expire  过期时间 单位 秒

 * return string

 * @author 麦当苗儿 zuojiazi@vip.qq.com

 */

function think_encrypt($data, $key = '', $expire = 0) {

    $key  = md5(empty($key) ? C('DATA_AUTH_KEY') : $key);

    $data = base64_encode($data);

    $x    = 0;

    $len  = strlen($data);

    $l    = strlen($key);

    $char = '';

    for ($i = 0; $i  $len; $i++) {

        if ($x == $l) $x = 0;

        $char .= substr($key, $x, 1);

        $x++;

    }

    $str = sprintf('%010d', $expire ? $expire + time():0);

    for ($i = 0; $i  $len; $i++) {

        $str .= chr(ord(substr($data, $i, 1)) + (ord(substr($char, $i, 1)))%256);

    }

    return str_replace(array('+','/','='),array('-','_',''),base64_encode($str));

}

/**

 * 系统解方法

 * @param  string $data 要解的字符串 (必须是think_encrypt方法加密的字符串)

 * @param  string $key  加密密钥

 * return string

 * @author 当苗儿 zuojiazi@vip.qq.com

 */

function think_decrypt($data, $key = ''){

    $key    = md5(empty($key) ? C('DATA_AUTH_KEY') : $key);

    $data   = str_replace(array('-','_'),array('+','/'),$data);

    $mod4   = strlen($data) % 4;

    if ($mod4) {

       $data .= substr('====', $mod4);

    }

    $data   = base64_decode($data);

    $expire = substr($data,0,10);

    $data   = substr($data,10);

    if($expire  0  $expire  time()) {

        return '';

    }

    $x      = 0;

    $len    = strlen($data);

    $l      = strlen($key);

    $char   = $str = '';

    for ($i = 0; $i  $len; $i++) {

        if ($x == $l) $x = 0;

        $char .= substr($key, $x, 1);

        $x++;

    }

    for ($i = 0; $i  $len; $i++) {

        if (ord(substr($data, $i, 1))ord(substr($char, $i, 1))) {

            $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1)));

        }else{

            $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1)));

        }

    }

    return base64_decode($str);

}

thinkphp能够对源代码加密吗

不能,thinkphp只是一个php框架,php源码的加密可以看看这个:Zend Guard

thinkphp数据库配置信息加密怎么处理

今天有一个朋友问我thinkphp的这个问题,刚好百度搜索到你这个问题。已经解决。就帮你解答一下这个问题。

首先我尝试在入口文件封装一个加密函数,我用php des 加密,然后在配置文件config.php调用。然后在控制器里面使用,打印配置文件:dump(C());//输出所有的配置文件信息, 虽然能看到正确的数据用户名和密码,但是会报错。失败告终。

我说一下我的解决方法。很简单。

1:把配置文件里面的用户名,密码,数据库名瞎写一写,别人看到你的代码的配置文件看到的就是错误的数据库名和密码了。比如:

'DB_NAME' = 'SB', // 数据库名

'DB_USER' = 'ni_da_ye', // 用户名

'DB_PWD' = 'da_da_bi', // 密码

在每个控制器文件里面。加入一段代码。

比如你的IndexController.class.php文件。加下面的代码。

/* 初始化方法*/

public function __construct(){

parent::__construct();

C("DB_NAME",decrypt('712349721937491237'));//数据库名,

C('DB_USER',decrypt('712349721937491237'));//用户名

C('DB_PWD',decrypt('712349721937491237'));//密码

}

看清楚了吗?

decrypt()这个函数就是我封装的一个加密函数,亲自测试没有错误。可能会牺牲一些性能。但是保证了用户名,密码,数据库名没有泄露。甚至你都可以把数据库连接地址也加密一下。希望能帮到你。

PHP加密函数可以考虑用des,aes这些可逆加密。别用什么md4,md5.

thinkphp MD5加密问题

AUTH_CODE这个参数是自定义的,每个网站的参数都不一样,有些网站为了安全,这个值还是随机数,这样的话,就打打加强了开源程序的安全性。encrypt这个函数在这里就是读取配置文件中的随机数和MD5加密之后的文件再做个二次加密,所以就很安全咯

是否可以解决您的问题?

thinkphp代码加密的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于thinkphp代码加密后无法访问、thinkphp代码加密的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/4369.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载