Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
یک امضای دیجیتال برای احراز هویت یک سند استفاده می شود تا مشخص شود که فرستنده سند همان کسی است که آنها می گویند و محتوای سند دستکاری نشده است.
Aspose.Words از اسناد دارای امضای دیجیتال پشتیبانی می کند و دسترسی به آنها را فراهم می کند و به شما امکان می دهد امضاهای دیجیتال را روی یک سند شناسایی و تأیید کنید و یک سند PDF تولید شده را با گواهی ارائه شده امضا کنید. در حال حاضر امضای دیجیتال در اسناد DOC، OOXML و ODT پشتیبانی میشود. امضای اسناد تولید شده در قالب PDF پشتیبانی می شود.
آنلاین امتحان کنید
می توانید این عملکرد را با امضای آنلاین رایگان ما امتحان کنید.
نکته مهمی که باید به آن توجه داشت این است که سندی که با استفاده از Aspose.Words بارگیری و سپس ذخیره شده است، هر گونه امضای دیجیتال امضا شده روی سند را از دست می دهد. این به دلیل طراحی است که امضای دیجیتال تضمین می کند که محتوا تغییر نکرده است و علاوه بر این، هویت افرادی که سند را امضا کرده اند را تأیید می کند. اگر امضاهای اصلی به سند حاصل منتقل شود، این اصول باطل می شود.
به همین دلیل، اگر اسناد آپلود شده در سرور را پردازش کنید، ممکن است به این معنی باشد که ممکن است سندی را که به این روش در سرور خود آپلود شده است بدون اینکه بدانید خراب کنید. بنابراین بهتر است امضای دیجیتالی روی یک سند را بررسی کنید و در صورت یافتن آن اقدام مناسب را انجام دهید، به عنوان مثال می توان یک هشدار برای مشتری ارسال کرد و به آنها اطلاع داد که سندی که ارسال می کند حاوی امضای دیجیتال است که در صورت وجود آن از بین می رود. فرآوری شده. فایل قالب این نمونه را می توانید از اینجا دانلود کنید.
کد بالا از روش FileFormatUtil.detect_file_format برای تشخیص اینکه آیا یک سند دارای امضای دیجیتال است بدون اینکه ابتدا سند را بارگیری کند، استفاده می کند. این یک روش کارآمد و ایمن برای بررسی یک سند برای امضا قبل از پردازش آنها است. هنگامی که اجرا شد، متد یک شی FileFormatInfo را برمی گرداند که ویژگی FileFormatInfo.has_digital_signature را ارائه می دهد. اگر سند دارای یک یا چند امضای دیجیتال باشد، این ویژگی true را برمیگرداند. توجه به این نکته مهم است که این روش امضاها را تأیید نمی کند، فقط تعیین می کند که آیا امضا وجود دارد یا خیر. اعتبار سنجی امضای دیجیتال در بخش بعدی پوشش داده شده است.
Count مجموعه Document.digital_signatures بررسی کنید که آیا سندی پس از بارگیری دارای امضای دیجیتال است یا خیر.
امضاهای دیجیتال در ماکروها قابل دسترسی یا امضا نیستند. این به این دلیل است که Aspose.Words مستقیماً با ماکروها در یک سند سروکار ندارد. با این حال، امضای دیجیتال در ماکروها هنگام صادرات سند به هر قالب کلمه ای حفظ می شود. این امضاها را می توان در کد VBA حفظ کرد زیرا محتوای باینری ماکروها تغییر نمی کند حتی اگر خود سند اصلاح شود.
یک سند می تواند چندین امضای دیجیتال داشته باشد. همه این امضاها از طریق مجموعه Document.digital_signatures قابل دسترسی هستند. هر شیء برگشتی یک DigitalSignature است که نشان دهنده یک امضای دیجیتال منفرد متعلق به سند است. این به اعضایی امکان می دهد که اعتبار امضا را بررسی کنید.
مهمترین ویژگی برای بررسی با امضای دیجیتال، اعتبار هر امضا در سند است. تمام امضاهای موجود در سند را می توان با فراخوانی ویژگی DigitalSignatureCollection.is_valid یکباره تأیید کرد. اگر همه امضاهای موجود در سند معتبر باشند یا اگر سند فاقد امضا باشند، true را برمیگرداند و اگر حداقل یک امضای دیجیتال معتبر نباشد، false را برمیگرداند.
هر امضا نیز می تواند به صورت جداگانه با تماس با DigitalSignature.is_valid تأیید شود. یک امضا می تواند به دلایل متعددی معتبر نباشد، به عنوان مثال سند از زمان امضا تغییر کرده است یا گواهی منقضی شده است. علاوه بر این، می توان به جزئیات اضافی امضا نیز دسترسی داشت. نمونه کد زیر نحوه تأیید اعتبار هر امضا در یک سند و نمایش اطلاعات اولیه در مورد امضا را نشان می دهد. فایل قالب این نمونه را می توانید از اینجا دانلود کنید.
کلاس DigitalSignatureUtil روش هایی را برای امضای سند ارائه می دهد. روش DigitalSignatureUtil.sign سند منبع را با استفاده از CertificateHolder داده شده با امضای دیجیتال امضا می کند و سند امضا شده را در جریان مقصد می نویسد
مثال زیر نحوه امضای سند ساده را نشان می دهد
مثال زیر نحوه امضای سند رمزگذاری شده را نشان می دهد
می توانید سند مبدأ را با استفاده از CertificateHolder و SignOptions داده شده با امضای دیجیتال امضا کنید و سند امضا شده را در فایل مقصد بنویسید. با استفاده از کلاس SignOptions می توانید گزینه هایی را برای امضای سند مشخص کنید. مثال زیر نحوه ایجاد خط امضای جدید و سند امضا را نشان می دهد
مثال زیر نحوه اصلاح خط امضای موجود و سند امضا را نشان می دهد
مثال زیر نحوه امضای سند Word را با استفاده از شناسه ارائه دهنده امضا نشان می دهد. ارائه دهنده خدمات رمزنگاری (CSP) یک ماژول نرم افزار مستقل است که در واقع الگوریتم های رمزنگاری را برای احراز هویت، رمزگذاری و رمزگذاری انجام می دهد. MS Office مقدار {00000000-0000-0000-0000-000000000000} را برای ارائه دهنده امضای پیش فرض خود محفوظ می دارد.
مثال زیر نحوه ایجاد خط امضا و امضای سند Word را با استفاده از شناسه ارائه دهنده امضا نشان می دهد.
Aspose.Words همچنین توانایی بازیابی مقدار امضای دیجیتال را از یک سند امضا شده دیجیتالی به عنوان یک آرایه بایت با استفاده از ویژگی SignatureValue فراهم می کند.
مثال کد زیر نشان می دهد که چگونه می توان مقدار امضای دیجیتال را به عنوان یک آرایه بایت از یک سند بدست آورد:
doc = aw.Document(MY_DIR + "Digitally signed.docx")
for digital_signature in doc.digital_signatures:
signature_value = base64.b64encode(digital_signature.signature_value)
print(f"Base64 signature value is: {signature_value}")
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.