public function encrypteAndDecrypt($string, $operation = 'D', $key = '', $expiry = 0)
{
// 动态密匙长度,相同的明文会生成不同密文就是依靠动态密匙
$ckey_length = 4;
// 密匙
$key = md5($key ? MD5($key) : MD5('QeEMcyiwg'));
// 密匙a会参与加解密
$keya = md5(substr($key, 0, 16));
// 密匙b会用来做数据完整性验证
$keyb = md5(substr($key, 16, 16));
$string = strtr($string, '-_', '+/=');
// 密匙c用于变化生成的密文
$keyc = $ckey_length ? ($operation == 'D' ? substr($string, 0, $ckey_length) : substr(md5(microtime()), -$ckey_length)) : '';
// 参与运算的密匙
$cryptkey = $keya . md5($keya . $keyc);
$key_length = strlen($cryptkey);
// 明文,前10位用来保存时间戳,解密时验证数据有效性,10到26位用来保存$keyb(密匙b),解密时会通过这个密匙验证数据完整性
// 如果是解码的话,会从第$ckey_length位开始,因为密文前$ckey_length位保存 动态密匙
php加解密方案,可设定过期时间
最新推荐文章于 2021-05-24 10:39:11 发布
本文介绍了一种PHP加解密方案,该方案允许设定密文的过期时间,以增强数据的安全性。操作符'D'用于解密,'E'用于加密,用户需要根据指导修改关键参数以适配自己的项目。
摘要由CSDN通过智能技术生成