Crypt::decript 功能在 Laravel 4.2 更新到 5.0 后停止工作

The Crypt::decript function stopped working after the Laravel 4.2 to 5.0 update

从 L4.2 更新到 L5 后,函数 Crypt::decrypt 不适用于 L4.2 上生成的哈希值,但是我的 APP_KEY 仍然相同。

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

我在更新后生成的哈希值有效,但不适用于迁移前的哈希值;

在我看来,由于列的长度,您的 64 位编码数据正在被删除,我认为您正在存储相对较大的内容。我只是通过在数据库中添加一个非常大的缓存值来重现您的错误。在您的架构中进行以下更改,回滚并重新运行迁移:

<?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');
    }

}

您之前粘贴的记录给了我一个 NULL,我认为这是因为它被分条了。

迁移 cache table 后。放入相同的缓存值并回读,希望这次不会出错。手指交叉!

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