如何解密cakephp 3 cookie

时间:2015-08-06 17:41:55

标签: php cookies cakephp-3.0

假设你有一个像这样的cookie字符串:

Q2FrZQ==.AAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCDDDDDDDDDDDDD

如何使用AES在cakephp 3中解密?

似乎Cake\Utility\Security::decrypt($cipher, $key, $hmacSalt = null)做到了:

http://book.cakephp.org/3.0/en/core-libraries/security.html#Cake\Utility\Security::decrypt

但参数怎么样? hmacSalt是应用程序的salt值,但第二个参数中的key值是多少?

1 个答案:

答案 0 :(得分:0)

只是看一下cookie组件的来源,$hmacSalt参数未被使用,

<强> https://github.com/cakephp/.../Controller/Component/CookieComponent.php#L437

并且$key参数由组件key配置选项值提供,其中包含

  

启用加密Cookie时使用的加密密钥。默认为Security.salt。

因此,除非您手动配置了cookie组件key选项,否则解密AES加密cookie值所需的全部内容

Security::decrypt($value, Security::salt());

其中$value是正确提取和解码的原始加密数据,因为cookie组件会通过它:

$prefix = 'Q2FrZQ==.';
$value = base64_decode(substr($value, strlen($prefix)));

<强> https://github.com/cakephp/.../Controller/Component/CookieComponent.php#L431-L432