prepare(' SELECT d.id, d.phone, d.national_number, d.email, d.password, c.year FROM driver d LEFT JOIN CarRegistration c ON c.driverID = d.id WHERE d.id = :id LIMIT 1 '); $stmt->execute([':id' => $id]); $driver = $stmt->fetch(); $pepper = getenv('SECRET_KEY_HMAC'); $res = ['driver' => $driver]; $oldParts = [ $driver['id'], $driver['phone'], ]; if (!empty($driver['national_number'])) { $oldParts[] = $driver['national_number']; } if (!empty($driver['year']) && preg_match('/^\d{4}$/', $driver['year'])) { $oldParts[] = $driver['year']; } $oldString = implode('|', $oldParts); $oldSecret = hash_hmac('sha256', $oldString, $pepper, true); $res['oldString'] = $oldString; $res['password_verify_old'] = password_verify($oldSecret, $driver['password']); $decPhone = !empty($driver['phone']) ? $encryptionHelper->decryptData($driver['phone']) : null; $decNat = !empty($driver['national_number']) ? $encryptionHelper->decryptData($driver['national_number']) : null; $newParts = [ $driver['id'], trim($decPhone), ]; if (!empty($decNat)) { $newParts[] = trim($decNat); } if (!empty($driver['year']) && preg_match('/^\d{4}$/', $driver['year'])) { $newParts[] = $driver['year']; } $newString = implode('|', $newParts); $newSecret = hash_hmac('sha256', $newString, $pepper, true); $res['newString'] = $newString; $res['password_verify_new'] = password_verify($newSecret, $driver['password']); $res['decPhone'] = $decPhone; echo json_encode($res);