Chữ ký số

Chữ ký số

Aspose.Words FOSS cho .NET có thể kiểm tra và xác minh các chữ ký số đã được đính kèm vào một .docx tài liệu thông qua Aspose.Words.DigitalSignatures không gian tên. Bản phát hành này bao gồm chữ ký verification — đọc siêu dữ liệu chữ ký, kiểm tra tính hợp lệ và xem xét chứng chỉ ký. Nó không bao gồm khả năng tạo chữ ký mới trên một tài liệu.


Đọc chữ ký từ tài liệu

Mỗi Document cung cấp một thuộc tính DigitalSignatures trả về một DigitalSignatureCollection — một tập hợp chỉ đọc, có thể liệt kê các đối tượng DigitalSignature đã có trong tệp đã tải. DigitalSignatureUtil.LoadSignatures(fileName) (và phiên bản LoadSignatures(stream)) đọc chữ ký trực tiếp từ tệp hoặc luồng mà không cần tải toàn bộ tài liệu vào đối tượng Document, điều này hữu ích khi bạn chỉ cần kiểm tra trạng thái chữ ký. Thuộc tính IsValid của tập hợp báo cáo liệu mọi chữ ký trong đó có hợp lệ hay không, và Count báo cáo số lượng chữ ký đã được tìm thấy.


Kiểm tra một chữ ký riêng lẻ

Mỗi DigitalSignature cung cấp IsValid (liệu chữ ký có hợp lệ về mặt mật mã), SignatureType (một giá trị DigitalSignatureType — CryptoApi, XmlDsig, hoặc Unknown), SignTime, Comments, SubjectName, IssuerName, và các byte thô SignatureValue. Thuộc tính CertificateHolder trả về một đối tượng CertificateHolder bao bọc chứng chỉ ký; thuộc tính Certificate của nó hiển thị X509Certificate2 nền để bạn có thể kiểm tra các trường chứng chỉ tiêu chuẩn (người phát hành, chủ thể, thời gian hiệu lực) bằng các API chứng chỉ riêng của .NET.


Những gì không được hỗ trợ trong phiên bản này

Bề mặt API vẫn khai báo các thành viên liên quan đến ký — DigitalSignatureUtil.Sign(), SignOptions, và XmlDsigLevel — để tương thích cấu trúc với mô hình đối tượng Aspose.Words thương mại cho .NET, nhưng việc tạo chữ ký số mới trên một tài liệu không hoạt động trong bản FOSS này. Sử dụng bản này để verify các chữ ký đã tồn tại trong tài liệu; quy trình ký yêu cầu Aspose.Words cho .NET.


Mẹo và Thực hành Tốt nhất

  • Ưu tiên DigitalSignatureUtil.LoadSignatures() hơn việc mở toàn bộ Document khi bạn chỉ cần kiểm tra xem tệp có được ký hay không — nó tránh chi phí phân tích toàn bộ nội dung tài liệu.
  • Kiểm tra DigitalSignatureCollection.IsValid trước để có kết quả nhanh pass/fail trước khi lặp qua các giá trị DigitalSignature.IsValid riêng lẻ.
  • SignatureType cho bạn biết cơ chế ký nào đã tạo ra chữ ký (CryptoApi so với XmlDsig); điều này ảnh hưởng tới các trường chứng chỉ có ý nghĩa.
  • Xem IsValid == false như một điều kiện thất bại nghiêm trọng trong bất kỳ quy trình tự động tiếp nhận tài liệu nào — không hiển thị siêu dữ liệu chữ ký từ một chữ ký không hợp lệ như là đáng tin cậy.

Các vấn đề thường gặp

Vấn đềNguyên nhânKhắc phục
DigitalSignatures.Count là 0 trên một .docx đã kýTệp đã được lưu lại bởi một công cụ đã loại bỏ phần chữ kýXác minh so với tệp đã ký gốc, không phải bản sao đã lưu lại
Chữ ký báo cáo IsValid = falseNội dung tài liệu đã bị thay đổi sau khi ký, hoặc chứng chỉ không đáng tin / đã hết hạnXem như không hợp lệ; không cố gắng “sửa” chữ ký
Cố gắng ký một tài liệu không có tác dụngChức năng ký chưa được triển khai trong phiên bản FOSS nàySử dụng Aspose.Words cho .NET (commercial) cho quy trình ký
CertificateHolder.Certificate ném ngoại lệ khi được kiểm traDữ liệu chứng chỉ nền tảng bị sai định dạng hoặc phần chữ ký bị hỏngXác nhận tệp nguồn là tài liệu ký thật, chưa bị chỉnh sửa

FAQ

Liệu Aspose.Words FOSS cho .NET có thể ký một tài liệu không?

Không. Phiên bản này có thể xác minh các chữ ký số hiện có nhưng không thể tạo chữ ký mới. Phương pháp DigitalSignatureUtil.Sign() và lớp SignOptions tồn tại trong bề mặt API để tương thích cấu trúc, nhưng việc ký không hoạt động ở đây.

Làm thế nào để kiểm tra xem một tài liệu có được ký hay không mà không cần tải toàn bộ?

Gọi DigitalSignatureUtil.LoadSignatures(fileName), nó sẽ trả về một DigitalSignatureCollection trực tiếp từ tệp.

DigitalSignatureCollection.IsValid có nghĩa là gì?

Nó chỉ là true khi mọi chữ ký trong bộ sưu tập đều hợp lệ riêng lẻ — một cách nhanh chóng để kiểm tra tính toàn vẹn của chữ ký tài liệu tổng thể trước khi kiểm tra từng DigitalSignature.

Tôi có thể lấy chi tiết chứng chỉ của một chữ ký ở đâu?

Thông qua DigitalSignature.CertificateHolder.Certificate, nó trả về một .NET X509Certificate2 tiêu chuẩn.


API Reference Tóm tắt

Lớp / Phương thứcMô tả
Document.DigitalSignaturesChữ ký đã được đính kèm vào tài liệu đã tải
DigitalSignatureUtil.LoadSignatures()Đọc chữ ký từ tệp hoặc luồng mà không tải toàn bộ tài liệu
DigitalSignatureCollectionBộ sưu tập chỉ đọc của các đối tượng DigitalSignature; IsValid, Count
DigitalSignatureMột chữ ký duy nhất: IsValid, SignTime, SubjectName, IssuerName, CertificateHolder
DigitalSignatureTypeEnum: CryptoApi, XmlDsig, Unknown
CertificateHolderBao bọc việc ký X509Certificate2

Xem thêm

 Tiếng Việt