douguo6472 2016-10-06 19:17
浏览 65
已采纳

在Laravel 4.2到5.0更新后,Crypt :: decript函数停止工作

After the update of L4.2 to L5 the function Crypt::decrypt doesn't work for the hashes generated on L4.2, however my APP_KEY still the same.

DecryptException in Encrypter.php line 147:
MAC is invalid.

My hashes generated after the update does work, but not for the ones before the migration;

  • 写回答

1条回答 默认 最新

  • douzi7890 2016-10-06 19:20
    关注

    It seems to me that your 64 enocded data is being strip down due to column length and I think you are storing something relatively big. I just reproduced your error by adding a very large cache value into the database. Make the following changes inside your schema, rollback and rerun the migration:

    <?php
    
    use Illuminate\Database\Schema\Blueprint;
    use Illuminate\Database\Migrations\Migration;
    
    class CreateCacheTable extends Migration {
    
        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
            Schema::create('cache', function(Blueprint $table)
            {
                $table->string('key')->unique();
                $table->longText('value');
                $table->timestamps();
            });
        }
    
        /**
         * Reverse the migrations.
         *
         * @return void
         */
        public function down()
        {
            Schema::drop('cache');
        }
    
    }
    

    The record you pasted previously giving me a NULL and I think it is because it is striped down.

    After migrating the cache table. Put the same cache value and read back hopefully you will not get error this time. Finger Crossed!

    Source: https://laracasts.com/discuss/channels/general-discussion/daeling-with-decryptexceptioninvalid-data

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?