我对加密技术不太熟悉,现在我们正在申请中使用PHP的openssl_encrypt / decrypt。
是否可以在到期时间之前使加密/解密工作?例如也许钥匙到期了?
答案 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字节)