php openssl的到期时间?

时间:2018-02-07 03:40:47

标签: php encryption cryptography php-openssl

我对加密技术不太熟悉,现在我们正在申请中使用PHP的openssl_encrypt / decrypt。

是否可以在到期时间之前使加密/解密工作?例如也许钥匙到期了?

1 个答案:

答案 0 :(得分:0)

是的,有可能,你必须在你需要加密之前将创建时间戳作为字节附加:

$time = pack('N', time());
$enc = openssl_encrypt($time . $other_data, ...);

解密时:

$dec = openssl_decrypt($encrypted, ...);
$time = unpack('N', substr($dec, 0, 4));
$other_data = substr($dec, 4);
if (time() - $time[1] > $EXPIRY_SECONDS)
   die('Expired');

我在pack / unpack中使用的N标志用于Big Endian字节顺序,你也可以使用V代表小端或L代表机器相关,因为时间戳适合32位整数(4字节)