decryptData($v); if ($p === false) return '‼️ DECRYPT FAILED'; $prefix = str_starts_with((string) $v, 'GCM:') ? 'GCM' : 'legacy/plain'; return "[$prefix] " . mask($p); } $targets = [ 'driver' => ['phone','email','gender','national_number','first_name','last_name','birthdate'], 'passengers' => ['phone','email','gender','first_name','last_name'], 'users' => ['phone','email','fingerprint','first_name'], 'CarRegistration' => ['vin','car_plate','owner'], ]; foreach ($targets as $t => $fields) { if ($only && $only !== $t) continue; echo "\n=== $t ===\n"; $rows = $con->query("SELECT * FROM `$t` ORDER BY RAND() LIMIT $n")->fetchAll(PDO::FETCH_ASSOC); if (!$rows) { echo " (no rows)\n"; continue; } foreach ($rows as $r) { $pk = $r['id'] ?? $r['idn'] ?? '?'; echo " row [$pk]\n"; foreach ($fields as $f) { if (!array_key_exists($f, $r)) continue; printf(" %-16s %s\n", $f, dec($r[$f])); } // فهارس البحث موجودة؟ foreach (['phone_bidx','email_bidx','name_bidx'] as $idx) { if (array_key_exists($idx, $r)) { printf(" %-16s %s\n", $idx, empty($r[$idx]) ? '(missing!)' : substr($r[$idx], 0, 12) . '…'); } } } } echo "\nDone.\n";