php加密解密,laravel配置加解密

 2023-10-18 阅读 27 评论 0

摘要:基于安全考慮,我們php項目配置文件中密碼應該是加密的,laravel中也提供了OpenSSL 的 AES-256-CBC 來進行加密 但是如果我們項目配置的是其他加密方式,且希望以最少的改動實現讀取加密配置并解密,如何修改代碼呢? 首先我們需要了解laravel&

基于安全考慮,我們php項目配置文件中密碼應該是加密的,laravel中也提供了OpenSSL 的 AES-256-CBC 來進行加密

但是如果我們項目配置的是其他加密方式,且希望以最少的改動實現讀取加密配置并解密,如何修改代碼呢?

首先我們需要了解laravel(我的laravel是5.5)的配置加載流程。

php加密解密?laravel 配置文件加載由配置類 /Illuminate/Foundation/Bootstrap/LoadConfiguration.php 的bootstrap 方法完成。

    public function bootstrap(Application $app){$items = [];//首先查看是否有配置緩存 如果有生成的配置緩存 會存在文件 /bootstrap/cache/config.phpif (file_exists($cached = $app->getCachedConfigPath())) {$items = require $cached;$loadedFromCache = true;}
$app->instance('config', $config = new Repository($items));//如果沒有緩存則讀取/config目錄下所有的配置文件if (! isset($loadedFromCache)) {$this->loadConfigurationFiles($app, $config);}
//此處的$config就是讀取到和加密配置$app->detectEnvironment(function () use ($config) {return $config->get('app.env', 'production');});
    //這個位置一會寫入解密處理邏輯date_default_timezone_set($config->get('app.timezone', 'UTC'));mb_internal_encoding('UTF-8');}

?此時我在.env配置加密的密碼

?

laravel admin文檔,bootstrap()方法讀取到的$config mysql 密碼是加密的。

?

在下圖位置加入你自己的解密邏輯,不過需要提前引入自己的解密類(PHP7.2+ 的mcrypt擴展需要自己手動安裝哦 )。

php混淆解密在線工具?

?這時我們再打印配置看看。

ok解密成功。頁面也能正常訪問。

加解密過程、在laravel 引入自己的類有疑問,可參考 laravel 引入第三方庫

?

轉載于:https://www.cnblogs.com/kala00k/p/11144220.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/149200.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息