假设你有一个像这样的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
值是多少?
答案 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 强>