.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "OPENSSL-ENC 1ssl" .TH OPENSSL-ENC 1ssl 2026-08-25 3.6.4 OpenSSL .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" openssl\-enc \- روال‌های رمزگذاری متقارن .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBenc\fR|\fIcipher\fR [\fB\-\fR\f(BIcipher\fR] [\fB\-help\fR] [\fB\-list\fR] [\fB\-ciphers\fR] [\fB\-in\fR \fIfilename\fR] [\fB\-out\fR \fIfilename\fR] [\fB\-pass\fR \fIarg\fR] [\fB\-e\fR] [\fB\-d\fR] [\fB\-a\fR] [\fB\-base64\fR] [\fB\-A\fR] [\fB\-k\fR \fIpassword\fR] [\fB\-kfile\fR \fIfilename\fR] [\fB\-K\fR \fIkey\fR] [\fB\-iv\fR \fIIV\fR] [\fB\-S\fR \fIsalt\fR] [\fB\-salt\fR] [\fB\-nosalt\fR] [\fB\-z\fR] [\fB\-md\fR \fIdigest\fR] [\fB\-iter\fR \fIcount\fR] [\fB\-pbkdf2\fR] [\fB\-saltlen\fR \fIsize\fR] [\fB\-p\fR] [\fB\-P\fR] [\fB\-bufsize\fR \fInumber\fR] [\fB\-nopad\fR] [\fB\-v\fR] [\fB\-debug\fR] [\fB\-none\fR] [\fB\-skeymgmt\fR \fIskeymgmt\fR] [\fB\-skeyopt\fR \fIopt\fR:\fIvalue\fR] [\fB\-engine\fR \fIid\fR] [\fB\-rand\fR \fIfiles\fR] [\fB\-writerand\fR \fIfile\fR] [\fB\-provider\fR \fIname\fR] [\fB\-provider\-path\fR \fIpath\fR] [\fB\-provparam\fR \fI[name:]key=value\fR] [\fB\-propquery\fR \fIpropq\fR] .PP \&\fBopenssl\fR \fIcipher\fR [\fB...\fR] .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" دستورهای رمز متقارن امکان رمزگذاری یا رمزگشایی داده‌ها را با استفاده از انواع رمزهای بلوکی و جریانی و با بهره‌گیری از کلیدهای مبتنی بر گذرواژه یا کلیدهای صریحاً ارائه‌شده فراهم می‌کنند. همچنین کدگذاری یا کدگشایی Base64 می‌تواند به تنهایی یا علاوه بر رمزگذاری یا رمزگشایی انجام شود. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" .IP \fB\-\fR\f(BIcipher\fR 4 .IX Item "-cipher" الگوریتم رمزی که باید استفاده شود. .IP \fB\-help\fR 4 .IX Item "-help" چاپ پیام راهنمای نحوه استفاده. .IP \fB\-list\fR 4 .IX Item "-list" فهرست کردن تمام رمزهای پشتیبانی‌شده. .IP \fB\-ciphers\fR 4 .IX Item "-ciphers" نام مستعار \-list برای نمایش تمام رمزهای پشتیبانی‌شده. .IP "\fB\-in\fR \fIfilename\fR" 4 .IX Item "-in filename" نام فایل ورودی؛ به طور پیش‌فرض ورودی استاندارد است. .IP "\fB\-out\fR \fIfilename\fR" 4 .IX Item "-out filename" نام فایل خروجی؛ به طور پیش‌فرض خروجی استاندارد است. .IP "\fB\-pass\fR \fIarg\fR" 4 .IX Item "-pass arg" منبع گذرواژه. برای اطلاعات بیشتر درباره قالب \fIarg\fR به \fBopenssl\-passphrase\-options\fR\|(1) مراجعه کنید. .IP \fB\-e\fR 4 .IX Item "-e" رمزگذاری داده‌های ورودی؛ این حالت پیش‌فرض است. .IP \fB\-d\fR 4 .IX Item "-d" رمزگشایی داده‌های ورودی. .IP \fB\-a\fR 4 .IX Item "-a" پردازش داده‌ها با Base64. این بدان معناست که در صورت رمزگذاری، داده‌ها پس از رمزگذاری به صورت Base64 کدگذاری می‌شوند. در صورت تنظیم رمزگشایی، داده‌های ورودی پیش از رمزگشایی، با Base64 کدگشایی می‌شوند. .Sp هنگامی که گزینه \fB\-A\fR داده نشود، در زمان کدگذاری پس از هر ۶۴ نویسه یک خط جدید درج می‌شود و در زمان کدگشایی، وجود یک خط جدید در میان ۱۰۲۴ بایت اول ورودی انتظار می‌رود. .IP \fB\-base64\fR 4 .IX Item "-base64" مشابه \fB\-a\fR .IP \fB\-A\fR 4 .IX Item "-A" اگر گزینه \fB\-a\fR تنظیم شده باشد، کدگذاری Base64 خروجی را بدون هیچ نویسه خط جدید تولید می‌کند، و کدگشایی Base64 به هیچ خط جدیدی نیاز نخواهد داشت. بنابراین، استفاده از گزینه \fB\-A\fR هنگام رمزگشایی ورودی ناشناخته می‌تواند مفید باشد. .IP "\fB\-k\fR \fIpassword\fR" 4 .IX Item "-k password" گذرواژه‌ای که کلید از آن مشتق می‌شود. این گزینه برای سازگاری با نسخه‌های پیشین OpenSSL است. توسط آرگومان \fB\-pass\fR منسوخ و جایگزین شده است. .IP "\fB\-kfile\fR \fIfilename\fR" 4 .IX Item "-kfile filename" خواندن گذرواژه برای مشتق کردن کلید از خط اول \fIfilename\fR. این گزینه برای سازگاری با نسخه‌های پیشین OpenSSL است. توسط آرگومان \fB\-pass\fR منسوخ و جایگزین شده است. .IP "\fB\-md\fR \fIdigest\fR" 4 .IX Item "-md digest" استفاده از دایجست مشخص‌شده برای ایجاد کلید از عبارت عبور. الگوریتم پیش‌فرض sha\-256 است. .IP "\fB\-iter\fR \fIcount\fR" 4 .IX Item "-iter count" استفاده از تعداد تکرار معین برای گذرواژه در مشتق کردن کلید رمزگذاری. مقادیر بالا زمان لازم برای حمله جستجوی فراگیر به فایل حاصل را افزایش می‌دهند. این گزینه استفاده از الگوریتم PBKDF2 را برای مشتق کردن کلید فعال می‌کند. .IP \fB\-pbkdf2\fR 4 .IX Item "-pbkdf2" استفاده از الگوریتم PBKDF2 با تعداد تکرار پیش‌فرض ۱۰۰۰۰، مگر اینکه توسط گزینه خط فرمان \fB\-iter\fR به گونه دیگری مشخص شده باشد. .IP \fB\-saltlen\fR 4 .IX Item "-saltlen" تنظیم طول نمک (salt) مورد استفاده هنگام استفاده از گزینه \fB\-pbkdf2\fR. به دلایل سازگاری، مقدار پیش‌فرض ۸ بایت است. حداکثر مقدار در حال حاضر ۱۶ بایت است. اگر گزینه \fB\-pbkdf2\fR استفاده نشود، این گزینه نادیده گرفته شده و طول نمک ثابت ۸ استفاده می‌شود. طول نمک استفاده‌شده هنگام رمزگذاری باید هنگام رمزگشایی نیز استفاده شود. .IP \fB\-nosalt\fR 4 .IX Item "-nosalt" عدم استفاده از نمک در روال‌های اشتقاق کلید. از این گزینه \fBنباید استفاده شود\fR مگر برای مقاصد آزمایش یا سازگاری با نسخه‌های بسیار قدیمی OpenSSL. .IP \fB\-salt\fR 4 .IX Item "-salt" استفاده از نمک (تولید تصادفی یا ارائه‌شده با گزینه \fB\-S\fR) هنگام رمزگذاری؛ این حالت پیش‌فرض است. .IP "\fB\-S\fR \fIsalt\fR" 4 .IX Item "-S salt" نمک واقعی مورد استفاده: این مقدار باید به صورت رشته‌ای از ارقام هگزادسیمال نشان داده شود. اگر این گزینه هنگام رمزگذاری استفاده شود، دقیقاً همین مقدار در زمان رمزگشایی مجدداً مورد نیاز خواهد بود. این نمک ممکن است کوتاه شود یا با صفر پر شود تا با طول نمک مطابقت یابد (به \fB\-saltlen\fR مراجعه کنید). .IP "\fB\-K\fR \fIkey\fR" 4 .IX Item "-K key" کلید واقعی مورد استفاده: این مقدار باید به صورت رشته‌ای شامل فقط ارقام هگزادسیمال نشان داده شود. اگر فقط کلید مشخص شده باشد، IV نیز باید با استفاده از گزینه \fB\-iv\fR مشخص شود. هنگامی که هم کلید و هم گذرواژه مشخص شوند، کلید ارائه‌شده با گزینه \fB\-K\fR استفاده خواهد شد و IV تولیدشده از گذرواژه در نظر گرفته می‌شود. تعیین هم‌زمان کلید و گذرواژه چندان منطقی نیست. .IP "\fB\-iv\fR \fIIV\fR" 4 .IX Item "-iv IV" مقدار IV واقعی مورد استفاده: این مقدار باید به صورت رشته‌ای شامل فقط ارقام هگزادسیمال نشان داده شود. هنگامی که فقط کلید با استفاده از گزینه \fB\-K\fR مشخص شده باشد، IV باید صریحاً تعریف شود. هنگامی که گذرواژه با استفاده از یکی از گزینه‌های دیگر مشخص می‌شود، IV از این گذرواژه تولید می‌شود. .IP \fB\-p\fR 4 .IX Item "-p" چاپ کلید و IV استفاده‌شده. .IP \fB\-P\fR 4 .IX Item "-P" چاپ کلید و IV استفاده‌شده و سپس خروج فوری: هیچ رمزگذاری یا رمزگشایی انجام نشود. .IP "\fB\-bufsize\fR \fInumber\fR" 4 .IX Item "-bufsize number" تنظیم اندازه بافر برای I/O. .IP \fB\-nopad\fR 4 .IX Item "-nopad" غیرفعال کردن پدینگ استاندارد بلوک. .IP \fB\-v\fR 4 .IX Item "-v" چاپ با جزئیات (verbose)؛ نمایش برخی آمارهای مربوط به I/O و اندازه‌های بافر. .IP \fB\-debug\fR 4 .IX Item "-debug" اشکال‌زدایی BIOهای مورد استفاده برای I/O. .IP \fB\-z\fR 4 .IX Item "-z" فشرده‌سازی یا استخراج داده‌های رمزگذاری‌شده با استفاده از zlib پس از رمزگذاری یا قبل از رمزگشایی. این گزینه تنها در صورتی وجود دارد که OpenSSL با گزینه zlib یا zlib\-dynamic کامپایل شده باشد. .IP \fB\-none\fR 4 .IX Item "-none" استفاده از رمز تهی یا NULL (بدون رمزگذاری یا رمزگشایی ورودی). .IP "\fB\-skeymgmt\fR \fIskeymgmt\fR" 4 .IX Item "-skeymgmt skeymgmt" برخی ارائه‌دهندگان ممکن است از اشیاء مات کلید متقارن پشتیبانی کنند. برای استفاده از آن‌ها، باید نام \fBEVP_SKEYMGMT\fR مورد استفاده را بدانیم. در صورت عدم تعیین، از نام الگوریتم رمز استفاده خواهد شد. .Sp برای یافتن نام مدیریت کلید متقارن مناسب، لطفاً به خروجی دستور \f(CW\*(C`openssl list \-skey\-managers\*(C'\fR مراجعه کنید. .IP "\fB\-skeyopt\fR \fIopt\fR:\fIvalue\fR" 4 .IX Item "-skeyopt opt:value" برای به دست آوردن یک کلید متقارن مات موجود یا تولید کلید جدید، گزینه‌های کلید به صورت opt:value مشخص می‌شوند. این گزینه‌ها نمی‌توانند همراه با هیچ گزینه‌ای که به طور مستقیم یا غیرمستقیم بر کلید خام دلالت دارد استفاده شوند. .IP "\fB\-rand\fR \fIfiles\fR, \fB\-writerand\fR \fIfile\fR" 4 .IX Item "-rand files, -writerand file" برای جزئیات به بخش «گزینه‌های حالت تصادفی» در \fBopenssl\fR\|(1) مراجعه کنید. .IP "\fB\-provider\fR \fIname\fR" 4 .IX Item "-provider name" .PD 0 .IP "\fB\-provider\-path\fR \fIpath\fR" 4 .IX Item "-provider-path path" .IP "\fB\-provparam\fR \fI[name:]key=value\fR" 4 .IX Item "-provparam [name:]key=value" .IP "\fB\-propquery\fR \fIpropq\fR" 4 .IX Item "-propquery propq" .PD به «گزینه‌های ارائه‌دهنده» در \fBopenssl\fR\|(1)، \fBprovider\fR\|(7) و \fBproperty\fR\|(7) مراجعه کنید. .IP "\fB\-engine\fR \fIid\fR" 4 .IX Item "-engine id" به «گزینه‌های موتور» در \fBopenssl\fR\|(1) مراجعه کنید. این گزینه منسوخ شده است. .SH "نکات (NOTES)" .IX Header "NOTES" برنامه را می‌توان با \f(CW\*(C`openssl \fR\f(CIcipher\fR\f(CW\*(C'\fR یا \&\f(CW\*(C`openssl enc \-\fR\f(CIcipher\fR\f(CW\*(C'\fR فراخوانی کرد. شکل اول با رمزهای ارائه‌شده توسط موتور (engine) کار نمی‌کند، زیرا این شکل پیش از خوانده شدن فایل پیکربندی و بارگذاری هرگونه ENGINE پردازش می‌شود. برای دریافت فهرستی از رمزهای پشتیبانی‌شده از دستور \fBopenssl\-list\fR\|(1) استفاده کنید. .PP موتورهایی که الگوریتم‌های رمزگذاری کاملاً جدیدی را ارائه می‌دهند (مانند موتور ccgost که الگوریتم gost89 را ارائه می‌دهد) باید در فایل پیکربندی تنظیم شوند. موتورهای مشخص‌شده در خط فرمان با استفاده از گزینه \fB\-engine\fR تنها می‌توانند برای پیاده‌سازی‌های سخت‌افزاری رمزهایی استفاده شوند که توسط هسته OpenSSL یا موتور دیگری که در فایل پیکربندی مشخص شده است، پشتیبانی می‌شوند. .PP هنگامی که دستور enc رمزهای پشتیبانی‌شده را فهرست می‌کند، رمزهای ارائه‌شده توسط موتورها که در فایل‌های پیکربندی مشخص شده‌اند نیز فهرست می‌شوند. .PP در صورت نیاز، برای اشتقاق کلید و IV درخواست گذرواژه خواهد شد. .PP اگر کلید از یک گذرواژه مشتق می‌شود، گزینه \fB\-salt\fR باید \fBهمیشه\fR استفاده شود، مگر اینکه خواهان سازگاری با نسخه‌های قبلی OpenSSL باشید. .PP بدون گزینه \fB\-salt\fR امکان انجام حملات لغت‌نامه‌ای کارآمد روی گذرواژه و حمله به داده‌های رمزگذاری‌شده با رمز جریانی وجود دارد. دلیل این امر آن است که بدون نمک، یک گذرواژه یکسان همیشه کلید رمزگذاری یکسانی تولید می‌کند. .PP هنگامی که نمک به صورت تصادفی تولید می‌شود (یعنی هنگام رمزگذاری با عبارت عبور بدون نمک صریحی که با گزینه \fB\-S\fR داده شده باشد)، بایت‌های اول داده‌های رمزگذاری‌شده برای ذخیره نمک جهت رمزگشایی بعدی رزرو می‌شوند. .PP برخی از رمزها کلیدهای بزرگی ندارند و برخی دیگر در صورت عدم استفاده صحیح، پیامدهای امنیتی دارند. به افراد تازه‌کار توصیه می‌شود صرفاً از یک رمز بلوکی قوی، مانند AES، در حالت CBC استفاده کنند. .PP تمام رمزهای بلوکی به طور معمول از پدینگ PKCS#7 استفاده می‌کنند که با نام پدینگ بلوک استاندارد نیز شناخته می‌شود. این امر اجازه می‌دهد یک بررسی اولیه صحت داده یا گذرواژه انجام شود. با این حال، از آنجا که احتمال موفقیت داده‌های تصادفی در این آزمون بیشتر از ۱ در ۲۵۶ است، آزمون چندان مناسبی نیست. .PP اگر پدینگ غیرفعال شود، داده‌های ورودی باید مضربی از طول بلوک رمز باشند. .PP تمام رمزهای RC2 طول کلید و طول کلید مؤثر یکسانی دارند. .PP الگوریتم‌های Blowfish و RC5 از یک کلید ۱۲۸ بیتی استفاده می‌کنند. .PP لطفاً توجه داشته باشید که OpenSSL 3.0 تأثیر گزینه \fB\-S\fR را تغییر داده است. هر مقدار نمک صریح مشخص‌شده از طریق این گزینه دیگر هنگام رمزگذاری به ابتدای متن رمزشده اضافه نمی‌شود، و باید دوباره در زمان رمزگشایی صریحاً ارائه شود. برعکس، هنگامی که گزینه \fB\-S\fR در حین رمزگشایی استفاده می‌شود، انتظار می‌رود که متن رمزشده مقدار نمک الحاق‌شده در ابتدا نداشته باشد. .PP هنگام استفاده از OpenSSL 3.0 یا جدیدتر برای رمزگشایی داده‌هایی که با یک نمک صریح تحت OpenSSL 1.1.1 رمزگذاری شده‌اند، از گزینه \fB\-S\fR استفاده نکنید؛ در این حالت نمک از متن رمزشده خوانده خواهد شد. برای تولید متن رمزشده‌ای که بتوان آن را با OpenSSL 1.1.1 رمزگشایی کرد، از گزینه \fB\-S\fR استفاده نکنید؛ در این صورت نمک به صورت تصادفی تولید شده و به ابتدای خروجی اضافه خواهد شد. .SH "رمزهای پشتیبانی‌شده (SUPPORTED CIPHERS)" .IX Header "SUPPORTED CIPHERS" توجه داشته باشید که برخی از این رمزها را می‌توان در زمان کامپایل غیرفعال کرد و برخی دیگر تنها در صورتی در دسترس هستند که موتور مناسبی در فایل پیکربندی تنظیم شده باشد. خروجی حاصل از فراخوانی این دستور با گزینه \fB\-list\fR (یعنی \f(CW\*(C`openssl enc \-list\*(C'\fR) فهرستی از رمزهای پشتیبانی‌شده توسط نسخه OpenSSL شما، شامل موارد ارائه‌شده توسط موتورهای پیکربندی‌شده است. .PP این دستور از حالت‌های رمزگذاری احرازشده مانند CCM و GCM پشتیبانی نمی‌کند و در آینده نیز از چنین حالت‌هایی پشتیبانی نخواهد کرد. دلیل این امر لزوم شروع ارسال جریانی خروجی (مثلاً به خروجی استاندارد زمانی که \fB\-out\fR استفاده نمی‌شود) پیش از اعتبارسنجی تگ احراز اصالت است. هنگامی که این دستور در یک خط لوله (pipeline) استفاده می‌شود، طرف دریافت‌کننده در صورت شکست احراز اصالت قادر به بازگشت به عقب (roll back) نخواهد بود. حالت‌های AEAD که در حال حاضر کاربرد متداول دارند نیز در صورت استفاده مجدد از key/iv/nonce دچار شکست فاجعه‌بار در محرمانگی یا یکپارچگی می‌شوند، و از آنجا که \fBopenssl enc\fR تمام بار مدیریت key/iv/nonce را بر دوش کاربر می‌گذارد، ریسک ارائه حالت‌های AEAD بسیار بزرگ‌تر از آن است که مجاز شمرده شود. این مشکلات مدیریت key/iv/nonce حالت‌های دیگر ارائه‌شده در این دستور را نیز تحت تأثیر قرار می‌دهند، اما حالت‌های شکست در این موارد شدت کمتری دارند و این قابلیت را نمی‌توان در یک شاخه انتشار پایدار حذف کرد. برای رمزگذاری انبوه داده‌ها، چه با استفاده از حالت‌های رمزگذاری احرازشده و چه حالت‌های دیگر، \fBopenssl\-cms\fR\|(1) توصیه می‌شود، زیرا یک قالب داده استاندارد ارائه داده و مدیریت لازم برای key/iv/nonce را انجام می‌دهد. .PP هنگامی که enc با حالت‌های پوشش کلید (key wrapping) استفاده می‌شود، داده‌های ورودی را نمی‌توان به صورت جریانی پردازش کرد، به این معنی که باید در یک نوبت پردازش شوند. در نتیجه، اندازه داده‌های ورودی باید کمتر از اندازه بافر (آرگومان \-bufsize، به طور پیش‌فرض 8*1024 بایت) باشد. رمزهای \*(Aq*\-wrap\*(Aq نیاز دارند که طول ورودی مضربی از ۸ بایت باشد، زیرا هیچ پدینگی اعمال نمی‌شود. رمزهای \*(Aq*\-wrap\-pad\*(Aq اجازه هر طولی از ورودی را می‌دهند. در هر دو مورد، نیازی به IV نیست. به مثال زیر مراجعه کنید. .PP .Vb 1 \& base64 Base 64 \& \& bf\-cbc Blowfish in CBC mode \& bf Alias for bf\-cbc \& blowfish Alias for bf\-cbc \& bf\-cfb Blowfish in CFB mode \& bf\-ecb Blowfish in ECB mode \& bf\-ofb Blowfish in OFB mode \& \& cast\-cbc CAST in CBC mode \& cast Alias for cast\-cbc \& cast5\-cbc CAST5 in CBC mode \& cast5\-cfb CAST5 in CFB mode \& cast5\-ecb CAST5 in ECB mode \& cast5\-ofb CAST5 in OFB mode \& \& chacha20 ChaCha20 algorithm \& \& des\-cbc DES in CBC mode \& des Alias for des\-cbc \& des\-cfb DES in CFB mode \& des\-ofb DES in OFB mode \& des\-ecb DES in ECB mode \& \& des\-ede\-cbc Two key triple DES EDE in CBC mode \& des\-ede Two key triple DES EDE in ECB mode \& des\-ede\-cfb Two key triple DES EDE in CFB mode \& des\-ede\-ofb Two key triple DES EDE in OFB mode \& \& des\-ede3\-cbc Three key triple DES EDE in CBC mode \& des\-ede3 Three key triple DES EDE in ECB mode \& des3 Alias for des\-ede3\-cbc \& des\-ede3\-cfb Three key triple DES EDE CFB mode \& des\-ede3\-ofb Three key triple DES EDE in OFB mode \& \& desx DESX algorithm. \& \& gost89 GOST 28147\-89 in CFB mode (provided by ccgost engine) \& gost89\-cnt GOST 28147\-89 in CNT mode (provided by ccgost engine) \& \& idea\-cbc IDEA algorithm in CBC mode \& idea same as idea\-cbc \& idea\-cfb IDEA in CFB mode \& idea\-ecb IDEA in ECB mode \& idea\-ofb IDEA in OFB mode \& \& rc2\-cbc 128 bit RC2 in CBC mode \& rc2 Alias for rc2\-cbc \& rc2\-cfb 128 bit RC2 in CFB mode \& rc2\-ecb 128 bit RC2 in ECB mode \& rc2\-ofb 128 bit RC2 in OFB mode \& rc2\-64\-cbc 64 bit RC2 in CBC mode \& rc2\-40\-cbc 40 bit RC2 in CBC mode \& \& rc4 128 bit RC4 \& rc4\-64 64 bit RC4 \& rc4\-40 40 bit RC4 \& \& rc5\-cbc RC5 cipher in CBC mode \& rc5 Alias for rc5\-cbc \& rc5\-cfb RC5 cipher in CFB mode \& rc5\-ecb RC5 cipher in ECB mode \& rc5\-ofb RC5 cipher in OFB mode \& \& seed\-cbc SEED cipher in CBC mode \& seed Alias for seed\-cbc \& seed\-cfb SEED cipher in CFB mode \& seed\-ecb SEED cipher in ECB mode \& seed\-ofb SEED cipher in OFB mode \& \& sm4\-cbc SM4 cipher in CBC mode \& sm4 Alias for sm4\-cbc \& sm4\-cfb SM4 cipher in CFB mode \& sm4\-ctr SM4 cipher in CTR mode \& sm4\-ecb SM4 cipher in ECB mode \& sm4\-ofb SM4 cipher in OFB mode \& \& aes\-[128|192|256]\-cbc 128/192/256 bit AES in CBC mode \& aes[128|192|256] Alias for aes\-[128|192|256]\-cbc \& aes\-[128|192|256]\-cfb 128/192/256 bit AES in 128 bit CFB mode \& aes\-[128|192|256]\-cfb1 128/192/256 bit AES in 1 bit CFB mode \& aes\-[128|192|256]\-cfb8 128/192/256 bit AES in 8 bit CFB mode \& aes\-[128|192|256]\-ctr 128/192/256 bit AES in CTR mode \& aes\-[128|192|256]\-ecb 128/192/256 bit AES in ECB mode \& aes\-[128|192|256]\-ofb 128/192/256 bit AES in OFB mode \& \& aes\-[128|192|256]\-wrap key wrapping using 128/192/256 bit AES \& aes\-[128|192|256]\-wrap\-pad key wrapping with padding using 128/192/256 bit AES \& \& aria\-[128|192|256]\-cbc 128/192/256 bit ARIA in CBC mode \& aria[128|192|256] Alias for aria\-[128|192|256]\-cbc \& aria\-[128|192|256]\-cfb 128/192/256 bit ARIA in 128 bit CFB mode \& aria\-[128|192|256]\-cfb1 128/192/256 bit ARIA in 1 bit CFB mode \& aria\-[128|192|256]\-cfb8 128/192/256 bit ARIA in 8 bit CFB mode \& aria\-[128|192|256]\-ctr 128/192/256 bit ARIA in CTR mode \& aria\-[128|192|256]\-ecb 128/192/256 bit ARIA in ECB mode \& aria\-[128|192|256]\-ofb 128/192/256 bit ARIA in OFB mode \& \& camellia\-[128|192|256]\-cbc 128/192/256 bit Camellia in CBC mode \& camellia[128|192|256] Alias for camellia\-[128|192|256]\-cbc \& camellia\-[128|192|256]\-cfb 128/192/256 bit Camellia in 128 bit CFB mode \& camellia\-[128|192|256]\-cfb1 128/192/256 bit Camellia in 1 bit CFB mode \& camellia\-[128|192|256]\-cfb8 128/192/256 bit Camellia in 8 bit CFB mode \& camellia\-[128|192|256]\-ctr 128/192/256 bit Camellia in CTR mode \& camellia\-[128|192|256]\-ecb 128/192/256 bit Camellia in ECB mode \& camellia\-[128|192|256]\-ofb 128/192/256 bit Camellia in OFB mode .Ve .SH "مثال‌ها (EXAMPLES)" .IX Header "EXAMPLES" فقط کدگذاری Base64 یک فایل باینری: .PP .Vb 1 \& openssl base64 \-in file.bin \-out file.b64 .Ve .PP کدگشایی همان فایل: .PP .Vb 1 \& openssl base64 \-d \-in file.b64 \-out file.bin .Ve .PP رمزگذاری یک فایل با استفاده از AES\-128 با درخواست گذرواژه در خط فرمان و اشتقاق کلید PBKDF2: .PP .Vb 1 \& openssl enc \-aes128 \-pbkdf2 \-in file.txt \-out file.aes128 .Ve .PP رمزگشایی یک فایل با استفاده از گذرواژه ارائه‌شده: .PP .Vb 2 \& openssl enc \-aes128 \-pbkdf2 \-d \-in file.aes128 \-out file.txt \e \& \-pass pass: .Ve .PP رمزگذاری یک فایل و سپس کدگذاری آن با Base64 (به عنوان مثال برای ارسال از طریق ایمیل) با استفاده از AES\-256 در حالت CTR و اشتقاق کلید PBKDF2: .PP .Vb 1 \& openssl enc \-aes\-256\-ctr \-pbkdf2 \-a \-in file.txt \-out file.aes256 .Ve .PP کدگشایی Base64 یک فایل و سپس رمزگشایی آن با استفاده از گذرواژه ارائه‌شده در یک فایل: .PP .Vb 2 \& openssl enc \-aes\-256\-ctr \-pbkdf2 \-d \-a \-in file.aes256 \-out file.txt \e \& \-pass file: .Ve .PP پوشش کلید AES: .PP .Vb 3 \& openssl enc \-e \-a \-id\-aes128\-wrap\-pad \-K 000102030405060708090A0B0C0D0E0F \-in file.bin \&or \& openssl aes128\-wrap\-pad \-e \-a \-K 000102030405060708090A0B0C0D0E0F \-in file.bin .Ve .SH "اشکالات (BUGS)" .IX Header "BUGS" گزینه \fB\-A\fR هنگامی که با فایل‌های بزرگ استفاده شود به درستی کار نمی‌کند. از سوی دیگر، هنگام کدگشایی base64 بدون گزینه \fB\-A\fR، اگر ۱۰۲۴ بایت اول ورودی شامل نویسه خط جدید نباشد، دو خط اول ورودی نادیده گرفته می‌شوند. .PP دستور \fBopenssl enc\fR تنها از تعداد مشخصی الگوریتم با پارامترهای معین پشتیبانی می‌کند. بنابراین، اگر به عنوان مثال بخواهید از RC2 با یک کلید ۷۶ بیتی یا RC4 با یک کلید ۸۴ بیتی استفاده کنید، نمی‌توانید از این برنامه استفاده نمایید. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBopenssl\-list\fR\|(1)، \fBEVP_SKEY\fR\|(3) .SH "تاریخچه (HISTORY)" .IX Header "HISTORY" دایجست پیش‌فرض در OpenSSL 1.1.0 از MD5 به SHA256 تغییر یافت. .PP گزینه \fB\-list\fR در OpenSSL 1.1.1e اضافه شد. .PP گزینه‌های \fB\-ciphers\fR و \fB\-engine\fR در OpenSSL 3.0 منسوخ شدند. .PP گزینه \fB\-saltlen\fR در OpenSSL 3.2 اضافه شد. .PP گزینه‌های \fB\-skeymgmt\fR و \fB\-skeyopt\fR در OpenSSL 3.5 اضافه شدند. .SH "حق نشر (COPYRIGHT)" .IX Header "COPYRIGHT" حق نشر 2000\-2025 متعلق به The OpenSSL Project Authors است. کلیه حقوق محفوظ است. .PP تحت مجوز Apache License 2.0 («مجوز») منتشر شده است. شما نمی‌توانید از این فایل استفاده کنید مگر در انطباق با این مجوز. می‌توانید یک نسخه از آن را در فایل LICENSE در توزیع مبدأ یا در دریافت نمایید.