diff($target); // 使用正确的属性获取年龄 $age = $interval->y; return $age; } //根据身份证获取生日 public static function getBirthdayFromIDCard($idCard) { // 检查身份证号码是否有效 if (!preg_match("/^(\d{15}$|^\d{17}[xX\d]$)/", $idCard)) { return false; } // 提取出生日期部分 $birthday = substr($idCard, 6, 8); // 如果是15位的身份证号码,需要将年份从两位扩展到四位(假设1900-2000) if (strlen($idCard) == 15) { $year = substr($birthday, 0, 2); if ($year >= 0 && $year <= 20) { // 2000-2020 $birthday = '20' . $birthday; } else { // 1900-1999 $birthday = '19' . $birthday; } } // 格式化并返回日期字符串 return date('Y-m-d', strtotime($birthday)); } //根据身份证判断性别 public static function getGenderFromIDCard($idCard) { // 检查身份证号是否合法(长度应该是18) if (strlen($idCard) != 18) { return null; } // 获取身份证号的第17位 $genderBit = intval($idCard[16]); // 判断性别 if ($genderBit % 2 == 0) { return 0; } else { return 1; } } //AES加密 public static function AESEncrypt($data, $key,$iv){ // 使用openssl_encrypt进行加密 $encryptedData = openssl_encrypt( $data, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv ); // 返回包含IV的加密数据,通常会将IV放在加密数据之前 return base64_encode( $encryptedData); } //AES解密 public static function AESDecrypt($data, $key,$iv){ // 解码base64编码的数据 $data = base64_decode($data); $encryptedData = $data; // 使用openssl_decrypt进行解密 return openssl_decrypt( $encryptedData, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv ); } }