Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-cookie加密和hmac签名_Php_Cookies_Encryption_Signature - Fatal编程技术网

PHP-cookie加密和hmac签名

PHP-cookie加密和hmac签名,php,cookies,encryption,signature,Php,Cookies,Encryption,Signature,我只是想知道加密和签署cookie是否多余?加密还不够吗?为什么 如果不是多余的,我想知道我是否朝着正确的方向去做。为了简单起见,我所做的是: $data = 'some data'; $encrypted_data = mcrypt_encrypt($cipher, $key, $data, $mode, $iv); $signature = hash_hmac($algorithm, $data, $key); $package = $encrypted_data . '|' . $sign

我只是想知道加密和签署cookie是否多余?加密还不够吗?为什么

如果不是多余的,我想知道我是否朝着正确的方向去做。为了简单起见,我所做的是:

$data = 'some data';
$encrypted_data = mcrypt_encrypt($cipher, $key, $data, $mode, $iv);
$signature = hash_hmac($algorithm, $data, $key);
$package = $encrypted_data . '|' . $signature;
setcookie('somecookie', $package, time()+60*60*24);
从我的基本理解来看,您是hmac散列数据,并使用分隔符将其附加到加密数据上?然后,在检查cookie时,执行所有验证等操作。我的做法正确吗?另外,加密和签名的所有密钥都应该是nonces(一次性使用的密钥),还是每个密钥都是所有人共享的单个全局密钥就足够了?很抱歉,这将成为一个三方问题。希望没有人介意。非常感谢

我只是想知道加密和签署cookie是否多余?加密还不够吗?为什么

除非您使用的是更新的AEAD接口

从我的基本理解来看,您是hmac散列数据,并使用分隔符将其附加到加密数据上?然后,在检查cookie时,执行所有验证等操作。我的做法正确吗

你在这里写的是一个加密和MAC结构。您需要加密,然后是MAC

- $signature = hash_hmac($algorithm, $data, $key);
+ $signature = hash_hmac($algorithm, $encrypted_data, $key);
更好的是,如果你不必写,就不要自己写。请随意使用
Na钠加密加密盒()
Na钠加密盒打开()