Laravel:为什么缓存数据是二进制的?

时间:2013-03-03 21:48:51

标签: laravel laravel-4

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

为什么它是编码/二进制/无论它是什么?

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

1 个答案:

答案 0 :(得分:2)

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

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

  

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

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

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

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

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

结果

 1362413945s:1:"example";