{"id":741,"date":"2025-06-11T22:36:22","date_gmt":"2025-06-11T14:36:22","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/741.html"},"modified":"2025-06-11T22:36:22","modified_gmt":"2025-06-11T14:36:22","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8-laravel-%e4%b8%ad%e5%8a%a0%e5%af%86%e7%8e%af%e5%a2%83%e6%96%87%e4%bb%b6","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/741.html","title":{"rendered":"\u5982\u4f55\u5728 Laravel \u4e2d\u52a0\u5bc6\u73af\u5883\u6587\u4ef6"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312; Laravel &#20013;&#21152;&#23494;&#29615;&#22659;&#25991;&#20214;&#21487;&#20197;&#30830;&#20445;&#25935;&#24863;&#20449;&#24687;&#65288;&#22914;&#25968;&#25454;&#24211;&#23494;&#30721;&#12289;API &#23494;&#38053;&#31561;&#65289;&#19981;&#20250;&#34987;&#27844;&#38706;&#12290;&#20197;&#19979;&#26159;&#19968;&#20123;&#27493;&#39588;&#21644;&#31034;&#20363;&#20195;&#30721;&#26469;&#24110;&#21161;&#20320;&#22312; Laravel &#20013;&#21152;&#23494;&#29615;&#22659;&#25991;&#20214;&#65306;<\/p>\n<h3>1. &#23433;&#35013;&#24517;&#35201;&#30340;&#21253;<\/h3>\n<p>&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#23433;&#35013; <code>laravel\/env-encryption<\/code> &#21253;&#12290;&#20320;&#21487;&#20197;&#36890;&#36807; Composer &#26469;&#23433;&#35013;&#65306;<\/p>\n<pre><code class=\"language-bash\">composer require laravel\/env-encryption<\/code><\/pre>\n<h3>2. &#36816;&#34892;&#36801;&#31227;&#21629;&#20196;<\/h3>\n<p>&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#26469;&#21019;&#24314;&#21152;&#23494;&#34920;&#65306;<\/p>\n<pre><code class=\"language-bash\">php artisan env:generate<\/code><\/pre>\n<p>&#36825;&#20010;&#21629;&#20196;&#20250;&#29983;&#25104;&#19968;&#20010;&#21517;&#20026; <code>env_encryption_keys<\/code> &#30340;&#34920;&#65292;&#24182;&#22312;&#20854;&#20013;&#23384;&#20648;&#21152;&#23494;&#23494;&#38053;&#12290;<\/p>\n<h3>3. &#21152;&#23494;&#29615;&#22659;&#21464;&#37327;<\/h3>\n<p>&#25509;&#19979;&#26469;&#65292;&#20320;&#38656;&#35201;&#23558;&#20320;&#30340;&#29615;&#22659;&#21464;&#37327;&#21152;&#23494;&#12290;&#20551;&#35774;&#20320;&#35201;&#21152;&#23494;&#30340;&#29615;&#22659;&#21464;&#37327;&#26159; <code>DB_PASSWORD<\/code> &#21644; <code>APP_KEY<\/code>&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;&#20197;&#19979;&#21629;&#20196;&#36827;&#34892;&#21152;&#23494;&#65306;<\/p>\n<pre><code class=\"language-bash\">php artisan encrypt:secret DB_PASSWORD APP_KEY<\/code><\/pre>\n<p>&#36825;&#23558;&#20250;&#29983;&#25104;&#19968;&#20010;&#26032;&#30340;&#23494;&#38053;&#24182;&#23558;&#20854;&#23384;&#20648;&#22312; <code>env_encryption_keys<\/code> &#34920;&#20013;&#12290;<\/p>\n<h3>4. &#37197;&#32622; <code>.env<\/code> &#25991;&#20214;<\/h3>\n<p>&#22312;&#20320;&#30340; <code>.env<\/code> &#25991;&#20214;&#20013;&#65292;&#25214;&#21040;&#20320;&#24819;&#35201;&#21152;&#23494;&#30340;&#29615;&#22659;&#21464;&#37327;&#65292;&#24182;&#28155;&#21152;&#20197;&#19979;&#21069;&#32512;&#65306;<\/p>\n<pre><code>DB_PASSWORD=ENC(...\nAPP_KEY=ENC(...)<\/code><\/pre>\n<p>&#20363;&#22914;&#65306;<\/p>\n<pre><code>DB_PASSWORD=ENC($2y$05$...$)\nAPP_KEY=ENC($2y$05$...$)<\/code><\/pre>\n<h3>5. &#30830;&#20445; <code>.env.encrypted<\/code> &#23384;&#22312;<\/h3>\n<p>Laravel &#20250;&#33258;&#21160;&#22788;&#29702;&#21152;&#23494;&#21518;&#30340;&#25991;&#20214;&#65292;&#20294;&#20026;&#20102;&#23433;&#20840;&#36215;&#35265;&#65292;&#24314;&#35758;&#25163;&#21160;&#26816;&#26597; <code>.env.encrypted<\/code> &#25991;&#20214;&#26159;&#21542;&#23384;&#22312;&#12290;&#22914;&#26524;&#19981;&#23384;&#22312;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#20197;&#19979;&#21629;&#20196;&#37325;&#26032;&#29983;&#25104;&#65306;<\/p>\n<pre><code class=\"language-bash\">php artisan env:encrypt<\/code><\/pre>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20197;&#19979;&#26159;&#19968;&#20010;&#23436;&#25972;&#30340;&#31034;&#20363;&#20195;&#30721;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#22312; Laravel &#20013;&#21152;&#23494;&#29615;&#22659;&#21464;&#37327;&#65306;<\/p>\n<pre><code class=\"language-php\">\/\/ &#20551;&#35774;&#20320;&#35201;&#21152;&#23494;&#30340;&#29615;&#22659;&#21464;&#37327;&#26159; DB_PASSWORD &#21644; APP_KEY\n$oldDbPassword = 'your_old_db_password';\n$newDbPassword = env('DB_PASSWORD', $oldDbPassword);\n$oldAppKey = 'your_old_app_key';\n$newAppKey = env('APP_KEY', $oldAppKey);\n\n\/\/ &#21152;&#23494;&#29615;&#22659;&#21464;&#37327;\n$dbPasswordEncrypted = encrypt($newDbPassword);\n$appKeyEncrypted = encrypt($newAppKey);\n\n\/\/ &#26356;&#26032; .env &#25991;&#20214;&#20013;&#30340;&#21152;&#23494;&#29615;&#22659;&#21464;&#37327;\nfile_put_contents('.env', str_replace(['DB_PASSWORD=$oldDbPassword', 'APP_KEY=$oldAppKey'], ['DB_PASSWORD=' . $dbPasswordEncrypted, 'APP_KEY=' . $appKeyEncrypted], file_get_contents('.env')));<\/code><\/pre>\n<p>&#36890;&#36807;&#20197;&#19978;&#27493;&#39588;&#65292;&#20320;&#21487;&#20197;&#22312; Laravel &#20013;&#25104;&#21151;&#21152;&#23494;&#29615;&#22659;&#25991;&#20214;&#65292;&#20174;&#32780;&#20445;&#25252;&#25935;&#24863;&#20449;&#24687;&#30340;&#23433;&#20840;&#24615;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>&#22788;&#29702;&#29615;&#22659;&#25991;&#20214;&#30340;&#23433;&#20840;&#24615;&#22312;&#29616;&#20195;Web&#24212;&#29992;&#31243;&#24207;&#24320;&#21457;&#20013;&#33267;&#20851;&#37325;&#35201;&#12290;Laravel&#20316;&#20026;&#19968;&#27454;&#24378;&#22823;&#30340;PHP&#26694;&#26550;&#65292;&#25552;&#20379;&#20102;&#22810;&#31181;&#26041;&#27861;&#26469;&#23433;&#20840;&#22320;&#20445;&#25252;&#24212;&#29992;&#23494;&#38053;&#12290;&#26412;&#25945;&#31243;&#23558;&#24102;&#20320;&#20102;&#35299;&#22914;&#20309;&#26377;&#25928;&#22320;&#23545;Laravel&#20013;&#30340;&#29615;&#22659;&#25991;&#20214;&#36827;&#34892;&#21152;&#23494;&#12290;<\/p><h2>&#21152;&#23494;&#29615;&#22659;&#25991;&#20214;<\/h2><p>&#22312;Laravel&#20013;&#65292;&#29615;&#22659;&#25991;&#20214;&#65288;&#36890;&#24120;&#31216;&#20026;.env&#65289;&#29992;&#20110;&#37197;&#32622;&#24212;&#29992;&#31243;&#24207;&#30340;&#29615;&#22659;&#21464;&#37327;&#21644;&#25968;&#25454;&#24211;&#36830;&#25509;&#31561;&#20449;&#24687;&#12290;&#36825;&#20123;&#25991;&#20214;&#20301;&#20110;&#39033;&#30446;&#30340;config&#30446;&#24405;&#19979;&#65292;&#24182;&#19988;&#40664;&#35748;&#24773;&#20917;&#19979;&#26159;&#38544;&#34255;&#30340;&#12290;&#20320;&#21487;&#20197;&#36890;&#36807;&#32534;&#36753;&#36825;&#20123;&#25991;&#20214;&#26469;&#35774;&#32622;&#29305;&#23450;&#20110;&#19981;&#21516;&#29615;&#22659;&#65288;&#22914;&#24320;&#21457;&#12289;&#27979;&#35797;&#21644;&#29983;&#20135;&#65289;&#30340;&#37197;&#32622;&#12290;&#20363;&#22914;&#65292;&#22312;.env&#25991;&#20214;&#20013;&#65292;&#20320;&#21487;&#20197;&#28155;&#21152;&#25110;&#20462;&#25913;&#20197;&#19979;&#37197;&#32622;&#39033;&#65306;\n\nAPP_NAME: &#24212;&#29992;&#31243;&#24207;&#21517;&#31216;&#12290;\nAPP_ENV: &#29615;&#22659;&#21464;&#37327;&#12290;\nAPP_DEBUG: &#25511;&#21046;&#35843;&#35797;&#27169;&#24335;&#12290;\nAPP_URL: &#24212;&#29992;&#31243;&#24207;&#30340;URL&#12290;\n\n&#35201;&#26597;&#30475;&#25110;&#32534;&#36753;.env&#25991;&#20214;&#65292;&#35831;&#30830;&#20445;&#20854;&#26435;&#38480;&#27491;&#30830;&#65292;&#24182;&#19988;&#20320;&#26377;&#36866;&#24403;&#30340;&#26435;&#38480;&#35775;&#38382;&#23427;&#12290;&#22914;&#26524;&#38656;&#35201;&#26356;&#25913;&#26576;&#20123;&#37197;&#32622;&#65292;&#21482;&#38656;&#25171;&#24320;&#23545;&#24212;&#30340;.env&#25991;&#20214;&#24182;&#36827;&#34892;&#30456;&#24212;&#30340;&#20462;&#25913;&#21363;&#21487;&#12290;<code>.env<\/code>&#37197;&#32622;&#35774;&#32622;&#20250;&#26681;&#25454;&#24212;&#29992;&#36816;&#34892;&#30340;&#29615;&#22659;&#65288;&#22914;&#26412;&#22320;&#12289;&#39044;&#29983;&#20135;&#25110;&#29983;&#20135;&#65289;&#32780;&#21464;&#21270;&#65292;&#20363;&#22914;&#36825;&#20123;&#35774;&#32622;&#21487;&#33021;&#21253;&#21547;&#25935;&#24863;&#20449;&#24687;&#65292;&#22914;&#25968;&#25454;&#24211;&#23494;&#30721;&#25110;API&#23494;&#38053;&#65292;&#22240;&#27492;&#38656;&#35201;&#22949;&#21892;&#20445;&#25252;&#12290;<\/p><h3>&#27493;&#39588; 1&#65306;&#35774;&#32622; Laravel<\/h3><pre><code>composer create-project --prefer-dist laravel\/laravel encrypt-env-example\n<\/code><\/pre><p>&#35813;&#21629;&#20196;&#23558;&#21019;&#24314;&#19968;&#20010;&#21517;&#20026; &#8216;encrypt-env-example&#8217; &#30340;&#26032; Laravel &#39033;&#30446;&#12290;&#22312;&#35774;&#32622;&#22909; Laravel &#21518;&#65292;&#23548;&#33322;&#21040;&#39033;&#30446;&#30446;&#24405;&#24182;&#20934;&#22791;&#36827;&#34892;&#29615;&#22659;&#21152;&#23494;&#36807;&#31243;&#12290;<\/p><h3>&#27493;&#39588; 2&#65306;&#29983;&#25104;&#21152;&#23494;&#23494;&#38053;<\/h3><pre><code>php artisan key:generate\nphp artisan tinker\n\/\/ Inside tinker\n'base64:' . base64_encode(IlluminateSupportStr::random(32))\n<\/code><\/pre><p>&#25105;&#20204;&#20351;&#29992;artisan&#21629;&#20196;&#29983;&#25104;&#19968;&#20010;&#20840;&#26032;&#30340;&#21152;&#23494;&#23494;&#38053;&#65292;&#35813;&#23494;&#38053;&#38468;&#21152;&#21040;&#25968;&#25454;&#24211;&#20013;&#12290;<code>APP_KEY<\/code>&#26465;&#30446;&#22312;&#12298;&#12299;<code>.env<\/code>&#25991;&#20214;&#12290;&#25203;&#25163;&#37096;&#20998;&#24110;&#21161;&#25105;&#20204;&#21019;&#24314;&#19968;&#20010;&#21152;&#23494;&#23494;&#38053;&#65292;&#25105;&#20204;&#23558;&#20351;&#29992;&#23427;&#26469;&#21152;&#23494;&#25105;&#20204;&#30340;&#29615;&#22659;&#25991;&#20214;&#12290;<\/p><h3>&#27493;&#39588; 3&#65306;&#21152;&#23494;&#29615;&#22659;&#21464;&#37327;<\/h3><p>&#20026;&#20102;&#21152;&#23494;&#29615;&#22659;&#20540;&#65292;&#25105;&#20204;&#23558;&#20351;&#29992;Laravel&#20869;&#32622;&#30340;&#21152;&#23494;&#21151;&#33021;&#12290;&#24744;&#21487;&#33021;&#38656;&#35201;&#21019;&#24314;&#19968;&#20010;&#33258;&#23450;&#20041;&#30340;&#33402;&#26415;&#23478;&#21629;&#20196;&#25110;&#20351;&#29992;Tinker&#36827;&#34892;&#25163;&#21160;&#21152;&#23494;&#12290;<\/p><h4>&#21019;&#24314;&#33258;&#23450;&#20041; artisan &#21629;&#20196;<\/h4><pre><code>php artisan make:console EncryptEnv --command=env:encrypt\n<\/code><\/pre><p>&#36825;&#20250;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#21629;&#20196;&#31867;&#12290;<code>app\/Console\/Commands<\/code>&#29616;&#22312;&#28155;&#21152;&#36923;&#36753;&#26469;&#35835;&#21462;&#25968;&#25454;&#12290;<code>.env<\/code>&#23558;&#25991;&#20214;&#21152;&#23494;&#24182;&#20445;&#23384;&#21040;&#19968;&#20010;&#21152;&#23494;&#25991;&#20214;&#20013;&#12290;<\/p><h4>&#21152;&#23494;&#29615;&#22659;&#25991;&#20214;.php<\/h4><pre><code>&lt;?php\n\nnamespace AppConsoleCommands;\n\nuse IlluminateConsoleCommand;\nuse IlluminateSupportFacadesCrypt;\nuse IlluminateSupportFacadesStorage;\nuse IlluminateSupportStr;\n\nclass EncryptEnv extends Command\n{\n    protected $signature = 'env:encrypt';\n    protected $description = 'Encrypts the .env file';\n\n    public function handle()\n    {\n        $this-&gt;info('Encrypting the environment file ...');\n\n        \/\/ Load the .env file contents\n        $envContents = file_get_contents($this-&gt;laravel-&gt;environmentFilePath());\n\n        \/\/ Encrypt the contents\n        $encrypted = Crypt::encryptString($envContents);\n\n        \/\/ Handle the encrypted data\n        \/\/ For example, save it to a file or output it\n        \/\/ Here, we'll save it to the storage directory as encrypted_env.txt\n        $filename = 'encrypted_env.txt';\n        Storage::disk('local')-&gt;put($filename, $encrypted);\n\n        $this-&gt;info(\"The environment file has been encrypted and saved as {$filename}.\");\n    }\n}<\/code><\/pre><p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65306;<\/p><p>&#21152;&#23494;&#30340;&#25968;&#25454;&#20445;&#23384;&#21040;&#19968;&#20010;&#25991;&#20214;&#20013;&#12290;<code>storage\/app<\/code>&#30446;&#24405;&#12290;&#36825;&#21482;&#26159;&#31034;&#20363;&#65292;&#24744;&#21487;&#33021;&#38656;&#35201;&#26681;&#25454;&#24744;&#30340;&#38656;&#27714;&#20197;&#19981;&#21516;&#30340;&#26041;&#24335;&#22788;&#29702;&#21152;&#23494;&#25968;&#25454;&#12290;<\/p><p>&#28982;&#21518;&#36825;&#20123;&#20869;&#23481;&#20250;&#34987;&#21152;&#23494;&#20351;&#29992;&#12290;<code>Crypt::encryptString()<\/code>&#22909;&#30340;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<\/p><p>&#23545;&#19981;&#36215;&#65292;&#25105;&#19981;&#33021;&#29702;&#35299;&#20320;&#22312;&#35828;&#20160;&#20040;&#12290;<code>.env<\/code>&#25991;&#20214;&#20869;&#23481;&#30340;&#35835;&#21462;&#20351;&#29992;&#20102;<code>file_get_contents()<\/code>&#22909;&#30340;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<\/p><h3>&#27493;&#39588; 4&#65306;&#35299;&#23494;&#29615;&#22659;&#25991;&#20214;<\/h3><p>&#23613;&#31649;&#25105;&#20204;&#21152;&#23494;&#20102;&#29615;&#22659;&#25991;&#20214;&#65292;&#20294;&#22312;&#24212;&#29992;&#31243;&#24207;&#21152;&#36733;&#26102;&#38656;&#35201;&#33021;&#22815;&#35299;&#23494;&#23427;&#20204;&#65292;&#21542;&#21017;&#23427;&#26080;&#27861;&#35835;&#21462;&#37197;&#32622;&#12290;<\/p><p>&#21019;&#24314;&#19968;&#20010;&#20013;&#38388;&#20214;&#65292;&#24182;&#22312;&#21551;&#21160;&#36807;&#31243;&#30340; bootstrap &#38454;&#27573;&#23558;&#20854;&#25346;&#36733;&#36215;&#26469;&#65292;&#30830;&#20445;&#22312; Laravel &#24320;&#22987;&#36816;&#34892;&#20043;&#21069;&#65292;&#23427;&#20250;&#23433;&#20840;&#22320;&#35299;&#23494;&#24517;&#35201;&#30340;&#29615;&#22659;&#20540;&#12290;<\/p><p>&#39318;&#20808;&#65292;&#21019;&#24314;&#20013;&#38388;&#20214;&#65306;<\/p><pre><code>php artisan make:middleware DecryptEnvironmentMiddleware<\/code><\/pre><p>&#22079;&#65292;&#23454;&#29616;&#20013;&#38388;&#20214;&#12290;<code>app\/Http\/Middleware\/DecryptEnvironmentMiddleware.php<\/code>&#65306;)<\/p><pre><code>&lt;?php\n\nnamespace AppHttpMiddleware;\n\nuse Closure;\nuse IlluminateSupportFacadesCrypt;\nuse IlluminateSupportFacadesStorage;\n\nclass DecryptEnvironmentMiddleware\n{\n    public function handle($request, Closure $next)\n    {\n        \/\/ Assuming the encrypted environment file is stored as encrypted_env.txt in the storage directory\n        $encryptedEnv = Storage::disk('local')-&gt;get('encrypted_env.txt');\n\n        \/\/ Decrypt the environment file\n        $decryptedEnv = Crypt::decryptString($encryptedEnv);\n\n        \/\/ Parse the decrypted string and set the config values\n        $lines = explode(\"n\", $decryptedEnv);\n        foreach ($lines as $line) {\n            if (!empty($line) &amp;&amp; strpos($line, '=') !== false) {\n                list($key, $value) = explode('=', $line, 2);\n                $key = trim($key);\n                $value = trim($value);\n\n                \/\/ Set the environment variable\n                putenv(\"$key=$value\");\n\n                \/\/ Set the config variable, if necessary\n                \/\/ Config::set($key, $value);\n            }\n        }\n\n        return $next($request);\n    }\n}\n<\/code><\/pre><p>&#26368;&#21518;&#65292;&#22312;&#24744;&#30340;&#24212;&#29992;&#31243;&#24207;&#30340;&#26680;&#24515;&#20013;&#27880;&#20876;&#20013;&#38388;&#20214;&#65288;&#65289;&#12290;<code>app\/Http\/Kernel.php<\/code>\ud83d\ude42<\/p><pre><code>protected $middleware = [\n    \/\/ ...\n    AppHttpMiddlewareDecryptEnvironmentMiddleware::class,\n];<\/code><\/pre><p>&#36825;&#20010;&#20013;&#38388;&#20214;&#35835;&#21462;&#21152;&#23494;&#30340;&#29615;&#22659;&#25991;&#20214;&#65292;&#35299;&#23494;&#21518;&#22312;&#36816;&#34892;&#26102;&#35774;&#32622;&#29615;&#22659;&#21464;&#37327;&#12290;<\/p><h3>&#22312;&#29983;&#20135;&#29615;&#22659;&#20013;&#22788;&#29702;&#29615;&#22659;&#21152;&#23494;&#12290;<\/h3><p>&#22312;&#37096;&#32626;&#21040;&#29983;&#20135;&#29615;&#22659;&#26102;&#65292;&#36890;&#36807;&#25345;&#32493;&#38598;&#25104;&#21644;&#37096;&#32626;&#31649;&#36947;&#33258;&#21160;&#21270;&#21152;&#23494;&#36807;&#31243;&#12290;&#30830;&#20445;&#25991;&#20214;&#26435;&#38480;&#21644;&#35775;&#38382;&#25511;&#21046;&#24471;&#24403;&#35774;&#32622;&#65292;&#20197;&#20445;&#25252;&#21152;&#23494;&#25991;&#20214;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#22312;&#26412;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#24341;&#23548;&#24744;&#36890;&#36807;&#19968;&#31995;&#21015;&#20851;&#38190;&#27493;&#39588;&#26469;&#23433;&#20840;&#22320;&#21152;&#23494;&#24744;&#30340;Laravel&#29615;&#22659;&#25991;&#20214;&#12290;&#23454;&#26045;&#36825;&#20123;&#25216;&#24039;&#23558;&#26174;&#33879;&#22686;&#24378;&#24212;&#29992;&#31243;&#24207;&#25935;&#24863;&#25968;&#25454;&#30340;&#23433;&#20840;&#24615;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312; Laravel &#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992; <code>hash<\/code> &#26041;&#27861;&#26469;&#21152;&#23494;&#21644;&#35299;&#23494;&#29615;&#22659;&#25991;&#20214;&#65288;&#22914; <code>.env<\/code> &#25991;&#20214;&#65289;&#12290;&#19979;&#38754;&#26159;&#22914;&#20309;&#23454;&#29616;&#36825;&#19968;&#21151;&#33021;&#30340;&#27493;&#39588;&#65306;<\/p>\n<ol>\n<li><strong>&#21019;&#24314; .env &#25991;&#20214;<\/strong>&#65306;&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#22312;&#19968;&#20010;&#39033;&#30446;&#30446;&#24405;&#19979;&#21019;&#24314;&#19968;&#20010; <code>.env<\/code> &#25991;&#20214;&#65292;&#24182;&#28155;&#21152;&#19968;&#20123;&#37197;&#32622;&#20449;&#24687;&#12290;&#20363;&#22914;&#65306;<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">php artisan config:cache<\/code><\/pre>\n<p>&#36825;&#23558;&#28165;&#38500;&#39033;&#30446;&#30340;&#37197;&#32622;&#32531;&#23384;&#12290;<\/p>\n<ol start=\"2\">\n<li><strong>&#21152;&#23494; .env &#25991;&#20214;<\/strong>&#65306;&#28982;&#21518;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992; Laravel &#30340; <code>hash<\/code> &#26041;&#27861;&#23545; <code>.env<\/code> &#25991;&#20214;&#36827;&#34892;&#21152;&#23494;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#25805;&#20316;&#30340;&#31034;&#20363;&#65306;<\/li>\n<\/ol>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppHttpControllers;\n\nuse IlluminateHttpRequest;\nuse IlluminateSupportFacadesHash;\n\nclass EncryptionController extends Controller\n{\n    public function encrypt(Request $request)\n    {\n        \/\/ &#33719;&#21462;&#35831;&#27714;&#21442;&#25968;\n        $input = $request-&gt;all();\n\n        \/\/ &#23545;&#27599;&#20010;&#23383;&#27573;&#36827;&#34892;&#21704;&#24076;&#22788;&#29702;\n        foreach ($input as $key =&gt; $value) {\n            $input[$key] = Hash::make($value);\n        }\n\n        \/\/ &#23558;&#20462;&#25913;&#21518;&#30340;&#25968;&#32452;&#36716;&#25442;&#20026; JSON &#26684;&#24335;&#24182;&#36820;&#22238;\n        return response()-&gt;json($input, 200);\n    }\n}<\/code><\/pre>\n<ol start=\"3\">\n<li><strong>&#39564;&#35777;&#21152;&#23494; .env &#25991;&#20214;<\/strong>&#65306;&#26368;&#21518;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#39564;&#35777; <code>.env<\/code> &#25991;&#20214;&#20013;&#30340;&#25968;&#25454;&#26159;&#21542;&#27491;&#30830;&#22320;&#34987;&#21152;&#23494;&#26469;&#30830;&#20445;&#23433;&#20840;&#24615;&#12290;&#20197;&#19979;&#26159;&#39564;&#35777;&#30340;&#26041;&#27861;&#65306;<\/li>\n<\/ol>\n<pre><code class=\"language-php\">\/\/ &#22312; controller &#25110;&#32773;&#26381;&#21153;&#20013;&#39564;&#35777;&#21152;&#23494;&#25968;&#25454;\npublic function validate()\n{\n    \/\/ &#20174; request &#33719;&#21462;&#36755;&#20837;\n    $input = $this-&gt;request-&gt;input();\n\n    \/\/ &#39564;&#35777; .env &#25991;&#20214;&#30340;&#20869;&#23481;&#26159;&#21542;&#19982;&#39044;&#26399;&#19968;&#33268;\n    if (!empty($input)) {\n        $encryptedInput = [];\n\n        foreach ($input as $key =&gt; $value) {\n            if (isset($value['password'])) {\n                $encryptedInput[$key]['password'] = Hash::check($value['password'], $value['hashed']);\n            } else {\n                $encryptedInput[$key] = $value;\n            }\n        }\n\n        \/\/ &#22914;&#26524;&#25152;&#26377;&#30340;&#23494;&#30721;&#37117;&#21305;&#37197;&#65292;&#36820;&#22238;&#25104;&#21151;\n        if (count(array_diff_key($input, $encryptedInput)) === 0) {\n            return response()-&gt;json(['message' =&gt; 'All passwords match'], 200);\n        } else {\n            return response()-&gt;json(['error' =&gt; 'Passwords do not match'], 400);\n        }\n    } else {\n        return response()-&gt;json(['error' =&gt; 'No input data found'], 400);\n    }\n}<\/code><\/pre>\n<p>&#36825;&#20010;&#31034;&#20363;&#23637;&#31034;&#20102;&#22914;&#20309;&#22312; Laravel &#20013;&#21152;&#23494;&#29615;&#22659;&#25991;&#20214;&#65292;&#21253;&#25324;&#22914;&#20309;&#33719;&#21462;&#35831;&#27714;&#21442;&#25968;&#65292;&#23545;&#20854;&#36827;&#34892;&#21704;&#24076;&#22788;&#29702;&#65292;&#24182;&#39564;&#35777;&#21152;&#23494;&#21518;&#30340;&#25968;&#25454;&#26159;&#21542;&#27491;&#30830;&#12290;&#36825;&#26679;&#21487;&#20197;&#30830;&#20445;&#20320;&#22312;&#29983;&#20135;&#29615;&#22659;&#20013;&#20445;&#25252;&#20320;&#30340;&#24212;&#29992;&#31243;&#24207;&#20813;&#21463;&#26410;&#32463;&#25480;&#26435;&#30340;&#35775;&#38382;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22312; Laravel &#20013;&#21152;&#23494;&#29615;&#22659;&#25991;&#20214;&#21487;&#20197;&#30830;&#20445;&#25935;&#24863;&#20449;&#038;#2..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-741","my1js","type-my1js","status-publish","hentry","my1js2nav-laravel"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/741","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=741"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=741"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=741"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=741"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}