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
从 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