2016-04-13 5 views
1

Мой PHP программа генерирует PDF с помощью TCPDF, затем:PHP Как проверить, если PDF имеет цифровую подпись

  1. Пользователь загружает PDF;
  2. Пользователь цифровой подписывает PDF;
  3. Пользователь загружает подписанный PDF;

Для шага номер 3, я хотел бы проверить, подписан ли загруженный файл цифровой подписью.

Еще лучше было бы проверяет, является ли загруженный файл и тот же файл, что программа генерирует на шаге 1.

ответ

2

Попробуйте это:

<?php 
    //from: http://stackoverflow.com/a/9059073/284932 
     function isStringInFile($file,$string){ 

     $handle = fopen($file, 'r'); 
     $valid = false; // init as false 
     while (($buffer = fgets($handle)) !== false) { 
      if (strpos($buffer, $string) !== false) { 
       $valid = TRUE; 
       break; // Once you find the string, you should break out the loop. 
      }  
     } 
     fclose($handle); 

     return $valid; 

    } 

Поиск «adbe.pkcs7.detached»:

//Signed? 
echo isStringInFile('mypdf.pdf', 'adbe.pkcs7.detached'); 

чтобы проверить, если это тот же PDF вы можете использовать TCPDF's setKeyWords() поставить некоторые уникальные ключи и проверить с Smalot PDF Parser:

<?php 
    $parser = new \Smalot\PdfParser\Parser(); 
    $pdf = $parser->parseFile('signed_pdf.pdf'); //com keywords 
    $details = $pdf->getDetails(); 
+0

Большое спасибо за ваш ответ. Я попробую как можно скорее, и я дам вам знать, все ли работает нормально. :) – UBEX

Смежные вопросы