3

我不确定,但我认为使用存储的数据Cache::remember是二进制的。它看起来像这样并继续:3133 3632 3334 3838 3533 613a 343a 7b73.

为什么它被编码/二进制/不管它是什么?

编辑:我目前正在使用文件缓存,因为数据库缓存给了我错误。

4

1 回答 1

2

您正在查看的是编码的加密缓存

所有缓存都源自Store.php. DatabaseStore.php是存储功能包含加密的唯一方法。Laravel 数据库缓存源代码包含以下注释:

数据库中的所有缓存值都被加密,以防消费者将其用作会话数据存储

换句话说,如果您的数据库遭到破坏 - 如果数据也无法访问您的源代码,理论上数据就会受到保护。

缓存使用您的密钥(在 中定义app.php)作为密码来加密/解密这个密钥。加密发生在Encrypter.php文件中,在 get/set 缓存调用期间由继承的存储文件(即 DatabaseStore.php)调用。

编辑:作为演示 - 以下文件缓存

Cache::remember('test', 5, function()
{
    return 'example';
});

结果是

 1362413945s:1:"example";
于 2013-03-04T12:05:50.657 回答