Excel 파일이 디지털 서명되었는지 확인하고 Java의 Excel에서 디지털 서명 확인

소개



Excel 파일로 작업할 때 개발자는 서명 확인 또는 다른 서명 속성 읽기와 같은 추가 조작을 수행하기 위해 서명된 파일을 메서드로 보낼 수 있도록 서명된 파일을 서명되지 않은 파일과 분리해야 하는 상황에 직면할 수 있습니다. 서명 시간 및 서명을 만드는 데 사용된 인증서와 같은 것입니다.

이러한 경우 이 문서에서는 Excel 파일이 디지털 서명되었는지 확인하고 Spire.XLS for Java 라이브러리를 사용하여 Java에서 Excel의 디지털 서명을 확인하는 방법을 보여줍니다.

종속성 추가



우선 Java 라이브러리용 Spire.XLS를 Java 프로젝트에 포함하는 데 필요한 종속성을 추가해야 합니다. official website에서 라이브러리의 jar를 다운로드하거나 Maven 기반 프로젝트의 pom.xml 파일에 다음 코드를 추가하여 Maven에서 설치할 수 있습니다.

<repositories>    
    <repository>    
        <id>com.e-iceblue</id>    
        <name>e-iceblue</name>    
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>    
    </repository>    
</repositories>    
<dependencies>    
    <dependency>    
        <groupId>e-iceblue</groupId>    
        <artifactId>spire.xls</artifactId>    
        <version>4.11.3</version>    
    </dependency>    
</dependencies>


디지털 서명 확인 및 확인



다음은 Excel 파일에서 디지털 서명을 확인하고 확인하는 주요 단계입니다.
  • 통합 문서 인스턴스를 만듭니다.
  • Workbook.loadFromFile() 메서드를 사용하여 Excel 파일을 로드합니다.
  • Workbook.isDigitallySigned() 메서드를 사용하여 파일이 디지털 서명되었는지 확인합니다.
  • 파일이 서명된 경우 Workbook.getDigitalSignatures() 메서드를 사용하여 서명을 가져옵니다.
  • 서명을 반복합니다.
  • 각 서명이 유효한지 또는 IDigitalSignature.isValid() 메서드를 사용하지 않는지 확인합니다. 그런 다음 IDigitalSignature.getX509Certificate() 메서드를 사용하여 서명 인증서를 가져온 다음 X509Certificate.checkValidity() 메서드를 사용하여 인증서를 확인합니다.

  • 다음은 기본 코드 샘플입니다.

    import com.spire.xls.Workbook;
    import com.spire.xls.core.interfaces.IDigitalSignature;
    import com.spire.xls.core.interfaces.IDigitalSignatures;
    
    import java.security.cert.CertificateExpiredException;
    import java.security.cert.CertificateNotYetValidException;
    import java.security.cert.X509Certificate;
    
    public class CheckAndVerifySignature {
        public static void main(String []args){
    
            //Create a Workbook instance
            Workbook workbook = new Workbook();
            //Load an Excel file
            workbook.loadFromFile("Signature.xlsx");
    
            //Check if the file is digitally signed
            boolean isSigned = workbook.isDigitallySigned();
            System.out.println("Is the file digitally signed? " + isSigned);
    
            if(isSigned) {
                //Get the digital signatures
                IDigitalSignatures signatures = workbook.getDigitalSignatures();
    
                //Traverse through the signatures
                for (IDigitalSignature signature : (Iterable<IDigitalSignature>) signatures) {
                    //Verify the current signature
                    boolean signatureIsValid = signature.isValid();
    
                    //Get the certificate of the signature
                    X509Certificate certificate = signature.getX509Certificate();
    
                    //Verify the certificate
                    boolean certificateIsValid = true;
                    try {
                        certificate.checkValidity();
                    } catch (CertificateExpiredException e) {
                        certificateIsValid = false;
                    } catch (CertificateNotYetValidException e) {
                        certificateIsValid = false;
                    }
    
                    System.out.println("Is the signature valid? " + signatureIsValid);
                    System.out.println("Is the certificate valid? " + certificateIsValid);
                }
            }
    
            workbook.dispose();
        }
    }
    


    산출:


    또한보십시오:
    Add and Delete Digital Signature in Excel in Java

    좋은 웹페이지 즐겨찾기