2012-12-20 5 views
0

Java 코드에서 파일에 암호를 적용 할 때 전자 서명 확인에 문제가 있습니다. 내 시나리오에서 이미 디지털 서명이있는 파일이 나타납니다. 디지털 서명 된 pdf 파일에 암호를 입력하고 싶습니다.Java에서 디지털 서명이있는 PDF 파일에 암호 적용

암호를 입력 할 수는 있지만 디지털 서명이 확인되지 않는다는 우려가 있습니다. 어떻게 달성 할 수 있는지 제안 해주십시오. 가질 수 있습니까? 당신은 PDF에 암호를 설정 할 수

답변

2

더 이상 설명이 내 옆에서 필요한 경우 알려 주시기 바랍니다는 .... 이전에 서명을 파괴하지 않고 서명했다. 서명은 서명 된 데이터가 바이트 스트림으로 변경되지 않았는지 확인합니다. 비밀번호로 해당 바이트를 변경합니다. 따라서 암호가 나중에 적용되면 서명이 깨집니다.

동시에 서명 및 암호화하는 것이 좋습니다.

귀하의 경우 불가능한 경우 서명 된 PDF를 PDF 포트폴리오에 추가하고 해당 포트폴리오를 암호화하는 것을 고려해보십시오. 이 경우 서명 된 PDF는 해독을 의미하는 포트폴리오에서 열어야합니다.

PS 나는 위의 모든 내용에서 XFA 서명이 아닌 일반 PDF 서명을 사용한다고 가정했습니다. 첫째

+0

감사 boss.May 경우에 나는 서명에 대한 정보를 동시에를 암호화 ... – saharsh

+1

이 당신의 작업 흐름을 통해 서명 작성 중에 이미 암호화 할 수 있으며, iText를 사용하여 해당 단계를 실행하면 createSignature 호출은 암호화 사용을 설정할 수있는 PdfStamper를 리턴합니다. 나는 당신이 다른 pdf 사인 솔루션으로 어떻게하는지 모르겠습니다. – mkl

0

이 코드 조각 문자열로 그 사용 후 디지털 서명을 변환하려고

public static String passwordProtectFile(File srcFile, File destFile, 
     String password) throws DocumentException, IOException { 
    String message = null; 

     PdfReader pdfReader = new PdfReader(new FileInputStream(srcFile)); 
     FileOutputStream fos = new FileOutputStream(destFile); 
     PdfStamper stamper = new PdfStamper(pdfReader, fos); 
     stamper.setEncryption(password.getBytes(), password.getBytes(), 
       PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128 
         | PdfWriter.DO_NOT_ENCRYPT_METADATA); 
     stamper.close(); 
     fos.close(); 
     pdfReader.close(); 
     message = "The Given File is Now Password Protected"; 

    return message; 
} 
관련 문제