"무결성 검사 확인"(pkcs7.verify()
의 결과로)은 원래 서명 된 개정판, 원래 서명 된 바이트 범위의 PDF가 변경되지 않았 음을 알려줍니다. 증분 업데이트를 사용하는 추가 모드에서 변경 사항을 적용한 경우 원래 서명 된 바이트 범위는 변경되지 않습니다.
당신도 acro.signatureCoversWholeDocument("signatureField")
검사, 변경 증분 업데이트로되었습니다 여부를 확인하려면 : 당신이 실제로 원래 부호있는 바이트 범위를 변경 않은 경우
/**
* Checks is the signature covers the entire document or just part of it.
*
* @param name the signature field name
* @return <CODE>true</CODE> if the signature covers the entire document,
* <CODE>false</CODE> otherwise
*/
public boolean signatureCoversWholeDocument(String name)
, 전후하여 PDF를 제공하시기 바랍니다 가감. 귀하의 의견에 관한
...
나는 당신의 제안을 따라 acro.signatureCoversWholeDocument ("signatureField")을 검사 "false"로 수익을 얻는다. 그렇다면 "원래 서명 된 바이트 범위가 변경되지 않았습니다"라는 의미입니까?
당신은 그 결과 값의 조합을 고려해야한다 :
만, 서명은 긍정적으로 현재 상태에서 문서를 서명 확인됩니다. 전 하나 true
이고 후자가 false
경우
는 서명 acro.extractRevision("signatureField")
양을 사용하여 문서로부터 추출 될 수있는 문서의 이전 상태에 서명을 검증한다.
Adobe Reader에서 iText는 아직 컨텐츠의 변경 사항을 확인할 수 없습니다.따라서 변경 내용이 또는 허용되지 않았는지 여부를 알 수 없습니다.
이전의 서명이 거짓 인 경우 서명이 원래 서명 한 상태 (해당 상태가 있었던 경우)는 더 이상 추출 할 수 없습니다.
그러면 서명을 적용하여 전체 문서를 어떻게 처리 할 수 있습니까?
PDF에 서명하면 서명이 전체 문서를 포함합니다. 예 : 샘플 파일 signTest_after.pdf
의 서명이 전체 파일을 포함합니다. 나중에 필드를 채우면 샘플 파일 signTest_modified.pdf
에 새 개정판이 추가되었으므로 서명이 적용되지 않습니다. 당신이 에 PDF 서명 작업, PDF 파일의 여러 버전에 대한 자세한 내용은 this answer 및 this answer이을 허용 는 서명 된 문서에 변경을 허용하는 방법을 알게 this answer을 읽어보십시오이에 대한 몇 가지 배경
.
iText를 일반에 통합 된 PDF 서명 작업을 위해 당신은 Digital Signatures for PDF documents, 브루노 Lowagie (iText를 소프트웨어), 서명 된 문서 특히 5 장 확인하여 백서를 연구 할 수 있습니다.
출처
2014-01-08 08:45:52
mkl
안녕하세요 mkl, 답장을 보내 주셔서 감사합니다. 나는 acro.signatureCoversWholeDocument ("signatureField")를 검사 할 때 당신의 제안을 따르고 "false"를 반환합니다. "원래 서명 된 바이트 범위가 변경되지 않았습니다"라는 의미입니까? 그런 다음 서명을 적용하여 전체 문서를 어떻게 처리 할 수 있습니까? 여기서 [my PDF는 수정 전후에 제공] (http://dl.vmall.com/c07q121c94). 감사합니다. –
귀하의 의견에 초점을 맞춘 답변에 일부를 추가했습니다. – mkl
제안과 함께 잘 작동합니다. 많이 감사합니다! –