डिजिटल हस्ताक्षर
डिजिटल हस्ताक्षर
Aspose.Words FOSS for .NET पहले से किसी दस्तावेज़ में संलग्न डिजिटल हस्ताक्षरों की जाँच और सत्यापन कर सकता है एक .docx दस्तावेज़ के माध्यम से Aspose.Words.DigitalSignatures namespace. इस संस्करण में हस्ताक्षर verification — हस्ताक्षर मेटाडेटा पढ़ना, वैधता जांचना, और साइनिंग प्रमाणपत्र का परीक्षण करना। इसमें दस्तावेज़ पर नए हस्ताक्षर बनाने की क्षमता शामिल नहीं है।
दस्तावेज़ से हस्ताक्षर पढ़ना
हर Document एक DigitalSignatures प्रॉपर्टी उजागर करता है जो एक DigitalSignatureCollection लौटाती है — एक पढ़ने-के-लिए-केवल, गणनीय संग्रह जिसमें लोड की गई फ़ाइल में पहले से मौजूद DigitalSignature वस्तुएँ होती हैं। DigitalSignatureUtil.LoadSignatures(fileName) (और LoadSignatures(stream) ओवरलोड) फ़ाइल या स्ट्रीम से सीधे हस्ताक्षर पढ़ता है बिना पूरी दस्तावेज़ को एक Document ऑब्जेक्ट में लोड किए, जो तब उपयोगी होता है जब आपको केवल हस्ताक्षर स्थिति जाँचनी हो। संग्रह की IsValid प्रॉपर्टी बताती है कि उसमें मौजूद प्रत्येक हस्ताक्षर वैध है या नहीं, और Count बताता है कि कितने हस्ताक्षर मिले।
एकल हस्ताक्षर का निरीक्षण
प्रत्येक DigitalSignature IsValid (क्या हस्ताक्षर क्रिप्टोग्राफ़िक रूप से वैध है), SignatureType (एक DigitalSignatureType मान — CryptoApi, XmlDsig, या Unknown), SignTime, Comments, SubjectName, IssuerName, और कच्चे SignatureValue बाइट्स उजागर करता है। CertificateHolder प्रॉपर्टी एक CertificateHolder ऑब्जेक्ट लौटाती है जो साइनिंग प्रमाणपत्र को लपेटता है; इसकी Certificate प्रॉपर्टी अंतर्निहित X509Certificate2 को उजागर करती है ताकि आप .NET के अपने प्रमाणपत्र API के साथ मानक प्रमाणपत्र फ़ील्ड (इश्यूअर, सब्जेक्ट, वैधता अवधि) का निरीक्षण कर सकें।
इस संस्करण में क्या समर्थित नहीं है
The API सतह अभी भी साइनिंग-संबंधी सदस्य घोषित करती है — DigitalSignatureUtil.Sign(), SignOptions, और XmlDsigLevel — व्यावसायिक Aspose.Words for .NET ऑब्जेक्ट मॉडल के साथ संरचनात्मक संगतता के लिये, लेकिन दस्तावेज़ पर नया डिजिटल हस्ताक्षर बनाना इस FOSS संस्करण में कार्यात्मक नहीं है। इस संस्करण का उपयोग करके verify एक दस्तावेज़ में पहले से मौजूद हस्ताक्षर; एक साइनिंग वर्कफ़्लो की आवश्यकता होती है Aspose.Words के लिए .NET.
टिप्स और सर्वश्रेष्ठ प्रथाएँ
- जब आपको केवल यह जांचने की आवश्यकता हो कि फ़ाइल पर हस्ताक्षर है या नहीं, तो पूरे
Documentको खोलने के बजायDigitalSignatureUtil.LoadSignatures()को प्राथमिकता दें — यह पूरे दस्तावेज़ बॉडी को पार्स करने की लागत बचाता है। - व्यक्तिगत
DigitalSignature.IsValidमानों पर इटरिट करने से पहले तेज़ पास/फ़ेल जांच के लिए पहलेDigitalSignatureCollection.IsValidजांचें। SignatureTypeआपको बताता है कि किस हस्ताक्षर तंत्र ने हस्ताक्षर उत्पन्न किया है (CryptoApiबनामXmlDsig); यह प्रभावित करता है कि कौन-से प्रमाणपत्र फ़ील्ड अर्थपूर्ण हैं।- किसी भी स्वचालित दस्तावेज़-इनटेक पाइपलाइन में
IsValid == falseको कठोर विफलता स्थिति के रूप में मानें — अमान्य हस्ताक्षर से प्राप्त हस्ताक्षर मेटाडेटा को विश्वसनीय न दिखाएँ।
सामान्य समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
DigitalSignatures.Count एक साइन्ड .docx पर 0 है | फ़ाइल को एक टूल द्वारा पुनः-सहेजा गया जिसने हस्ताक्षर भाग को हटा दिया | मूल हस्ताक्षरित फ़ाइल के विरुद्ध सत्यापित करें, न कि पुनः-सहेजी गई प्रति |
हस्ताक्षर रिपोर्ट करता है IsValid = false | हस्ताक्षर के बाद दस्तावेज़ की सामग्री बदल गई है, या प्रमाणपत्र अप्रविश्वसनीय/समय समाप्त हो चुका है | इसे अमान्य मानें; हस्ताक्षर को “मरम्मत” करने का प्रयास न करें |
| दस्तावेज़ पर हस्ताक्षर करने का प्रयास कोई प्रभाव नहीं डालता | हस्ताक्षर इस FOSS संस्करण में लागू नहीं किया गया है | हस्ताक्षर कार्यप्रवाहों के लिए .NET (व्यावसायिक) के लिये Aspose.Words का उपयोग करें |
CertificateHolder.Certificate निरीक्षण करने पर अपवाद फेंकता है | अधोस्तर प्रमाणपत्र डेटा विकृत है या हस्ताक्षर भाग भ्रष्ट है | सुनिश्चित करें कि स्रोत फ़ाइल एक वास्तविक, अपरिवर्तित, हस्ताक्षरित दस्तावेज़ है |
FAQ
क्या Aspose.Words FOSS for .NET एक दस्तावेज़ पर हस्ताक्षर कर सकता है?
नहीं। यह संस्करण मौजूदा डिजिटल हस्ताक्षरों को सत्यापित कर सकता है लेकिन नए नहीं बना सकता। DigitalSignatureUtil.Sign() method और SignOptions class API surface में संरचनात्मक संगतता के लिए मौजूद हैं, लेकिन यहाँ साइनिंग कार्यात्मक नहीं है।
मैं बिना पूरी तरह लोड किए यह कैसे जांचूँ कि दस्तावेज़ पर हस्ताक्षर है या नहीं?
DigitalSignatureUtil.LoadSignatures(fileName) को कॉल करें, जो फ़ाइल से सीधे एक DigitalSignatureCollection लौटाता है।
DigitalSignatureCollection.IsValid का क्या अर्थ है?
यह true तभी है जब संग्रह में प्रत्येक हस्ताक्षर व्यक्तिगत रूप से वैध हो — प्रत्येक DigitalSignature की जाँच करने से पहले संपूर्ण दस्तावेज़ हस्ताक्षर की अखंडता जाँचने का एक त्वरित तरीका।
हस्ताक्षर के लिए प्रमाणपत्र विवरण मुझे कहाँ मिलेंगे?
DigitalSignature.CertificateHolder.Certificate के माध्यम से, जो एक मानक .NET X509Certificate2 लौटाता है।
API Reference सारांश
| क्लास / मेथड | विवरण |
|---|---|
Document.DigitalSignatures | लोड किए गए दस्तावेज़ में पहले से संलग्न हस्ताक्षर |
DigitalSignatureUtil.LoadSignatures() | फ़ाइल या स्ट्रीम से हस्ताक्षर पढ़ें बिना पूरे दस्तावेज़ को लोड किए |
DigitalSignatureCollection | DigitalSignature ऑब्जेक्ट्स का केवल-पढ़ने योग्य संग्रह; IsValid, Count |
DigitalSignature | एकल हस्ताक्षर: IsValid, SignTime, SubjectName, IssuerName, CertificateHolder |
DigitalSignatureType | Enum: CryptoApi, XmlDsig, Unknown |
CertificateHolder | साइनिंग X509Certificate2 को लपेटता है |