1

파일을 java로 pdf에 포함해야하며 인증서로 암호를 지정해야합니다. 몇 달 전에 itext를 사용하여 뭔가를 찾았습니다. 하지만 더 이상 찾을 수 없습니다. 인증서가 스마트 카드에 있습니다.암호가 포함 된 PDF의 첨부 파일

답변

0

PDF 암호화는 공용 인증서로 수행됩니다. PDF가 암호화되면 해당 개인 인증서가있는 사람 만 PDF를 열 수 있습니다. 시나리오에서 이는 스마트 카드를 소유 한 사람 만 문서를 열 수 있음을 의미합니다.

먼저 스마트 카드에서 공개 인증서를 추출해야합니다. 여기서 가장 중요한 질문은 자바에서이 작업을 수행하겠습니까? 그렇다면 PKCS # 11을 사용하여이 작업을 수행 하시겠습니까? MSCAPI 사용? 스마트 카드 API 사용? 나는 솔직히 그것이 당신이 원하는 것을 생각하지 않습니다. 스마트 카드의 소유자가 공개 인증서를 수동으로 추출하여 보내 주길 바란다고 생각합니다. 이 가정이 틀린 경우 스마트 카드에서 공개 인증서를 얻는 방법과 같은 또 다른 질문을 게시해야합니다. 이 인증서가되면

, 당신은이 같은 PDF를 암호화 할 수 있습니다

PdfReader reader = new PdfReader(src); 
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest)); 
Certificate cert = getPublicCertificate("resources/encryption/public.cer"); 
stamper.setEncryption(new Certificate[]{cert}, 
    new int[]{PdfWriter.ALLOW_PRINTING}, PdfWriter.ENCRYPTION_AES_128); 
stamper.close(); 
reader.close(); 

공인 인증서 파일 public.cer에 저장됩니다. 이것이 최종 사용자가 스마트 카드에서 추출한 파일입니다.

첨부 파일을 개별적으로 암호화하려면 해당 파일 수준에서 수행해야합니다. PDF 또는 다른 유형의 문서에 대해 이야기하고 있는지 여부는 분명하지 않습니다.

사본을 붙여 넣습니다. the source code snippet from my book.

관련 문제