| OPENSSL-DGST(1ssl) | OpenSSL | OPENSSL-DGST(1ssl) |
نام (NAME)
openssl-dgst - انجام عملیات خلاصه پیام (دایجست)
خلاصه دستور (SYNOPSIS)
openssl dgst|digest [-digest] [-list] [-help] [-c] [-d] [-debug] [-hex] [-binary] [-xoflen length] [-r] [-out filename] [-sign filename|uri] [-keyform DER|PEM|P12|ENGINE] [-passin arg] [-verify filename] [-prverify filename] [-signature filename] [-sigopt nm:v] [-hmac key] [-mac alg] [-macopt nm:v] [-fips-fingerprint] [-engine id] [-engine_impl id] [-rand files] [-writerand file] [-provider name] [-provider-path path] [-provparam [name:]key=value] [-propquery propq] [file ...]
توضیحات (DESCRIPTION)
این دستور خلاصه پیام (message digest) یک یا چند فایل ارائهشده را در قالب هگزادسیمال در خروجی چاپ میکند، و همچنین با استفاده از خلاصه پیام، امضاهای دیجیتال را تولید و اعتبارسنجی مینماید.
نام عمومی، openssl dgst، میتواند همراه با گزینهای که الگوریتم مورد نظر را مشخص میکند استفاده شود. دایجست پیشفرض sha256 است. یک نام digest پشتیبانیشده نیز میتواند به عنوان نام زیردستور به کار رود. برای مشاهده فهرست الگوریتمهای پشتیبانیشده، از "openssl list -digest-algorithms" استفاده کنید.
گزینهها (OPTIONS)
- -help
- چاپ پیام راهنمای نحوه استفاده.
- -digest
- نام یک دایجست پشتیبانیشده را برای استفاده مشخص میکند. گزینه -list در زیر را ببینید:
- -list
- فهرستی از خلاصههای پیام پشتیبانیشده را چاپ میکند.
- -c
- دایجست را در گروههای دورقمی که با دونقطه (:) از هم جدا شدهاند چاپ میکند؛ تنها زمانی کاربرد دارد که گزینه -hex نیز ارائه شده باشد.
- -d, -debug
- چاپ اطلاعات اشکالزدایی BIO.
- -hex
- دایجست به صورت یک دامپ هگزادسیمال خروجی داده میشود. این حالت پیشفرض برای یک دایجست «عادی» در مقایسه با امضای دیجیتال است. برای اطلاعات درباره امضاهای دیجیتال با استفاده از -hex به بخش «نکات» در زیر مراجعه کنید.
- -binary
- خروجی دادن دایجست یا امضا در قالب باینری.
- -xoflen length
- تنظیم طول
خروجی برای
الگوریتمهای
XOF مانند shake128 و
shake256. این
گزینه برای
عملیات
امضا
پشتیبانی
نمیشود.
برای ارائهدهندگان (providers) در OpenSSL، تنظیم این مقدار برای الگوریتمهای shake الزامی است، زیرا مقادیر پیشفرض قبلی تنها به گونهای تنظیم شده بودند که نیمی از حداکثر توان امنیتی را ارائه دهند.
برای تضمین حداکثر توان امنیتی ۱۲۸ بیتی، مقدار xoflen برای shake128 باید حداقل ۳۲ (بایت) تنظیم شود. برای سازگاری با نسخههای قبلی OpenSSL، میتوان آن را روی ۱۶ تنظیم کرد که منجر به توان امنیتی تنها ۶۴ بیتی میشود.
برای تضمین حداکثر توان امنیتی ۲۵۶ بیتی، مقدار xoflen برای shake256 باید حداقل ۶۴ (بایت) تنظیم شود. برای سازگاری با نسخههای قبلی OpenSSL، میتوان آن را روی ۳۲ تنظیم کرد که منجر به توان امنیتی تنها ۱۲۸ بیتی میشود.
- -r
- خروجی دادن دایجست در قالب «coreutils»، شامل خطوط جدید. توسط برنامههایی مانند sha1sum(1) استفاده میشود.
- -out filename
- نام فایل خروجی، یا به طور پیشفرض خروجی استاندارد.
- -sign filename|uri
- امضای
دیجیتال
دایجست با
استفاده از
کلید خصوصی
ارائهشده.
توجه داشته باشید برای الگوریتمهایی که تنها از امضای تکمرحلهای (one-shot) پشتیبانی میکنند (مانند Ed25519، ED448، ML-DSA-44، ML-DSA-65 و ML-DSA-87) نباید دایجست تنظیم شود. برای این الگوریتمها ورودی پیش از امضا بافر میشود (و خلاصه نمیگردد). برای این الگوریتمها، اگر ورودی بزرگتر از ۱۶ مگابایت باشد، خطایی رخ خواهد داد.
- -keyform DER|PEM|P12|ENGINE
- قالب کلید برای امضا؛ به طور پیشفرض نامشخص است. برای جزئیات به openssl-format-options(1) مراجعه کنید.
- -sigopt nm:v
- ارسال گزینهها به الگوریتم امضا در حین عملیات امضا یا اعتبارسنجی. نامها و مقادیر این گزینهها مختص هر الگوریتم بوده و در بخش «Signature parameters» در provider-signature(7) مستند شدهاند.
- -passin arg
- منبع گذرواژه کلید خصوصی. برای اطلاعات بیشتر درباره قالب arg به openssl-passphrase-options(1) مراجعه کنید.
- -verify filename
- اعتبارسنجی امضا با استفاده از کلید عمومی موجود در «filename». خروجی یا «Verified OK» یا «Verification Failure» خواهد بود.
- -prverify filename
- اعتبارسنجی امضا با استفاده از کلید خصوصی موجود در «filename».
- -signature filename
- امضای واقعی جهت اعتبارسنجی.
- -hmac key
- ایجاد یک MAC
هششده با
استفاده از
«key».
دستور openssl-mac(1) باید بر استفاده از این گزینه خط فرمان ارجح دانسته شود.
- -mac alg
- ایجاد MAC (کد
اصالتسنجی
پیام
کلیددار).
پرکاربردترین
الگوریتم MAC
الگوریتم HMAC
(کد
اصالتسنجی
پیام مبتنی
بر هش) است،
اما
الگوریتمهای
MAC دیگری نیز
وجود دارند
که مبتنی بر
هش نیستند،
به عنوان
نمونه
الگوریتم
gost-mac که توسط
موتور gost
پشتیبانی
میشود.
کلیدهای MAC و
سایر
گزینهها
باید از
طریق
پارامتر -macopt
تنظیم شوند.
دستور openssl-mac(1) باید بر استفاده از این گزینه خط فرمان ارجح دانسته شود.
- -macopt nm:v
- ارسال گزینهها به الگوریتم MAC که با کلید -mac مشخص شده است. گزینههای زیر توسط هر دو الگوریتم HMAC و gost-mac پشتیبانی میشوند:
- key:string
- کلید MAC را به صورت یک رشته الفباییعددی مشخص میکند (زمانی استفاده شود که کلید تنها شامل نویسههای قابل چاپ باشد). طول رشته باید با هرگونه محدودیتهای الگوریتم MAC مطابقت داشته باشد؛ به عنوان مثال دقیقاً ۳۲ نویسه برای gost-mac.
- hexkey:string
- کلید MAC را در قالب هگزادسیمال مشخص میکند (دو رقم هگز به ازای هر بایت). طول کلید باید با هرگونه محدودیتهای الگوریتم MAC مطابقت داشته باشد؛ به عنوان مثال دقیقاً ۳۲ نویسه برای gost-mac.
دستور openssl-mac(1) باید بر استفاده از این گزینه خط فرمان ارجح دانسته شود.
- -fips-fingerprint
- محاسبه HMAC با استفاده از یک کلید مشخص برای برخی عملیات OpenSSL-FIPS.
- -rand files, -writerand file
- برای جزئیات به بخش «Random State Options» در openssl(1) مراجعه کنید.
- -engine id
- بخش «Engine Options» در
openssl(1) را
ببینید. این
گزینه
منسوخ شده
است.
موتور برای خلاصهها استفاده نمیشود مگر اینکه از گزینه -engine_impl استفاده شده باشد یا برای این کار پیکربندی شده باشد؛ بخش «Engine Configuration Module» در config(5) را ببینید.
- -engine_impl id
- هنگامی که همراه با گزینه -engine استفاده شود، مشخص میکند که از موتور id برای عملیات خلاصه پیام نیز استفاده شود.
- -provider name
- -provider-path path
- -provparam [name:]key=value
- -propquery propq
- بخشهای «Provider Options» در openssl(1)، provider(7) و property(7) را ببینید.
- file ...
- فایل یا فایلهایی که باید خلاصه شوند. اگر هیچ فایلی مشخص نشود، از ورودی استاندارد استفاده میشود.
مثالها (EXAMPLES)
برای ایجاد خلاصه پیام کدگذاریشده با هگزادسیمال از یک فایل:
openssl dgst -md5 -hex file.txt or openssl md5 file.txt
برای امضا کردن یک فایل با استفاده از SHA-256 و خروجی در یک فایل باینری:
openssl dgst -sha256 -sign privatekey.pem -out signature.sign file.txt or openssl sha256 -sign privatekey.pem -out signature.sign file.txt
برای اعتبارسنجی یک امضا:
openssl dgst -sha256 -verify publickey.pem \ -signature signature.sign \ file.txt
نکات (NOTES)
سازوکارهای دایجست موجود به گزینههای استفادهشده هنگام ساخت OpenSSL بستگی خواهند داشت. برای فهرست کردن آنها میتوان از دستور "openssl list -digest-algorithms" استفاده کرد.
برنامههای جدید یا چابک بهتر است از SHA-256 استفاده کنند. سایر دایجستها، بهویژه SHA-1 و MD5، هنوز به طور گسترده برای تعاملپذیری با قالبها و پروتکلهای موجود به کار میروند.
هنگام امضای یک فایل، این دستور الگوریتم مورد استفاده برای امضا (RSA، ECC و غیره) را بر اساس اطلاعات ASN.1 کلید خصوصی به طور خودکار تعیین میکند. هنگام اعتبارسنجی امضاها، این دستور تنها خود امضای RSA، DSA یا ECDSA را پردازش میکند، نه دادههای مرتبط با شناسایی امضاکننده و الگوریتم استفادهشده در قالبهایی مانند X.509، CMS و S/MIME.
برای برخی الگوریتمهای امضا، بهویژه ECDSA و DSA، یک منبع تولید اعداد تصادفی الزامی است.
گزینههای امضا و اعتبارسنجی تنها در صورتی باید استفاده شوند که یک فایل منفرد در حال امضا یا اعتبارسنجی باشد.
امضاهای هگزادسیمال را نمیتوان با استفاده از openssl اعتبارسنجی کرد. در عوض، پیش از اعتبارسنجی از «xxd -r» یا برنامهای مشابه برای تبدیل امضای هگز به یک امضای باینری استفاده کنید.
دستور openssl-mac(1) بر گزینههای خط فرمان -hmac، -mac و -macopt ترجیح داده میشود.
همچنین ببینید (SEE ALSO)
تاریخچه (HISTORY)
دایجست پیشفرض در OpenSSL 1.1.0 از MD5 به SHA256 تغییر یافت. گزینههای مرتبط با FIPS در OpenSSL 1.1.0 حذف شدند.
گزینههای -engine و -engine_impl در OpenSSL 3.0 منسوخ شدند.
حق نشر (COPYRIGHT)
حق نشر 2000-2025 متعلق به The OpenSSL Project Authors است. کلیه حقوق محفوظ است.
تحت مجوز Apache License 2.0 («مجوز») منتشر شده است. شما نمیتوانید از این فایل استفاده کنید مگر در انطباق با این مجوز. میتوانید یک نسخه از آن را در فایل LICENSE در توزیع مبدأ یا در https://www.openssl.org/source/license.html دریافت نمایید.
| 2026-08-25 | 3.6.4 |