Pregunta:
Fecha: 07-09-2023 05:54:53
(En Español)
Cuando el cliente cargue el archivo pdf el sistema debe validar si el archivo esta o no firmado digitalmente, si no esta debo alertar al usuario para que cargue un archivo firmado.
Alguna idea de como hacerlo. Votos: 0 - Respuestas: 2 - Vistas: 6 Compartir en: Google Facebook Twitter LinkedIn Link
Como verificar que un archivo pdf este firmando digitalmente[No resuelta]
Tengo la siguiente solicitud:Cuando el cliente cargue el archivo pdf el sistema debe validar si el archivo esta o no firmado digitalmente, si no esta debo alertar al usuario para que cargue un archivo firmado.
Alguna idea de como hacerlo. Votos: 0 - Respuestas: 2 - Vistas: 6 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 08-09-2023 09:23:21 No lo he podido probar aún pero aquí parece haber algo que puede ayudarte Votos: 0 - Link respuesta
-
Fecha: 05-09-2024 06:47:55 Para validar si un archivo PDF está firmado digitalmente en PHP, puedes usar la biblioteca fpdi en combinación con tcpdf o setasign/fpdf-signer. Aquí te dejo una solución concisa para validar la firma digital en un archivo PDF
<?php require_once 'vendor/autoload.php'; use setasign\Fpdi\Fpdi; use setasign\Fpdi\PdfParser\CrossReference\CrossReferenceException; use setasign\Fpdi\PdfParser\PdfParserException; use setasign\Fpdi\PdfReader\PdfReaderException; function isPdfSigned($filePath) { try { $pdf = new Fpdi(); $pageCount = $pdf->setSourceFile($filePath); $signatureFound = false; // Recorre todas las páginas para buscar si el PDF contiene firmas for ($i = 1; $i <= $pageCount; $i++) { $tplIdx = $pdf->importPage($i); $pdf->AddPage(); $pdf->useTemplate($tplIdx); $annotations = $pdf->getAnnotations(); foreach ($annotations as $annotation) { if (isset($annotation['Subtype']) && $annotation['Subtype'] === '/Widget' && isset($annotation['FT']) && $annotation['FT'] === '/Sig') { $signatureFound = true; break; } } } return $signatureFound; } catch (CrossReferenceException | PdfParserException | PdfReaderException $e) { return false; } } $filePath = 'ruta/al/archivo.pdf'; if (isPdfSigned($filePath)) { echo "El PDF está firmado digitalmente."; } else { echo "El PDF no está firmado digitalmente. Por favor, sube un archivo firmado."; }
Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión