JOSE-JWE-ENC(1)   JOSE-JWE-ENC(1)

jose-jwe-enc - رمزگذاری متن آشکار با استفاده از یک یا چند JWK/گذرواژه

jose jwe enc [-i JWE] -I PT -k JWK [-p] [-r RCP] [-o JWE] [-O CT] [-c]

دستور jose jwe enc داده‌ها را با استفاده از یک یا چند JWK (-k) یا گذرواژه (-p) رمزگذاری می‌کند. هنگام مشخص کردن بیش از یک JWK یا گذرواژه، رمزگشایی با هر یک از کلیدهای ارائه‌شده موفقیت‌آمیز خواهد بود.

با مشخص کردن گزینهٔ -O می‌توان یک JWE منفصل (detached) ایجاد کرد. در این حالت، متن رمزشدهٔ کدگشایی‌شده در خروجی مشخص‌شده نوشته می‌شود و در JWE گنجانده نخواهد شد.

اگر تنها از یک کلید استفاده شود (-k یا -p)، JWE حاصل را می‌توان با استفاده از گزینهٔ -c در قالب سریال‌سازی فشردهٔ JWE (Compact Serialization) خروجی گرفت.

این دستور از یک رویکرد مبتنی بر الگو برای ساخت JWE استفاده می‌کند. شما می‌توانید الگوهایی برای خود JWE (-i) یا برای شیء گیرندهٔ JWE (-r) مشخص کنید. مشخصه‌های تعیین‌شده در هر یک از این الگوها بدون تغییر در خروجی ظاهر خواهند شد. یک استثنا برای این قاعده این است که سرآیند محافظت‌شدهٔ JWE (Protected Header) باید به صورت کدگشایی‌شده در الگو مشخص شود. این دستور به‌طور خودکار آن را به عنوان بخشی از فرایند رمزگذاری کُدگذاری خواهد کرد.

اگر یک پارامتر سرآیند JOSE را (از طریق گزینه‌های -i یا -r) مشخص کنید که بر ساخت JWE تأثیر می‌گذارد، این دستور تلاش خواهد کرد بر اساس این پارامتر به‌گونه‌ای عمل کند که گویی یک پیکربندی است. برای نمونه، تعیین پارامتر «zip» در سرآیند محافظت‌شدهٔ JWE باعث می‌شود متن آشکار پیش از رمزگذاری فشرده شود. در حال حاضر، jose رفتار خود را برای پارامترهای سرآیند JOSE با نام‌های «alg»، «enc» و «zip» (بخش ۴.۱.۳ از RFC 7516 را ببینید)، و همچنین پارامترهای مختص الگوریتم برای الگوریتم‌های پشتیبانی‌شده (بخش ۴ از RFC 7518 را ببینید) تغییر می‌دهد.

با این حال، نیازی به ارائهٔ هیچ الگویی نیست: jose jwe enc با استنباط الگوریتم‌های صحیح از کلیدهای ورودی ارائه‌شده (JWK یا گذرواژه)، به‌طور خودکار پارامترهای «alg» و «enc» را پر می‌کند. بنابراین، گزینه‌های -i و -r عموماً باید برای ارائهٔ فراداده‌های توسعه‌یافتهٔ JWE استفاده شوند.

•-i JSON, --input=JSON : تجزیهٔ JWE از JSON
•-i FILE, --input=FILE : خواندن JWE از FILE
•-i -, --input=-: خواندن JWE از ورودی استاندارد
•-I FILE, --detached=FILE : خواندن متن رمزشدهٔ کدگشایی‌شده از FILE
•-I -, --detached=- : خواندن متن رمزشدهٔ کدگشایی‌شده از ورودی استاندارد
•-r FILE, --recipient=FILE : خواندن الگوی گیرندهٔ JWE از FILE
•-r -, --recipient=- : خواندن الگوی گیرندهٔ JWE از ورودی استاندارد
•-k FILE, --key=FILE : خواندن JWK(Set) از FILE
•-k -, --key=- : خواندن JWK(Set) از ورودی استاندارد
•-p, --password : درخواست گذرواژهٔ رمزگذاری
•-o FILE, --output=FILE : نوشتن JWE در FILE
•-o -, --output=- : نوشتن JWE در stdout (پیش‌فرض)
•-O FILE, --detach=FILE : جداسازی متن رمزشده (ciphertext) و رمزگشایی در FILE
•-O -, --detach=- : جداسازی متن رمزشده (ciphertext) و رمزگشایی در خروجی استاندارد
•-c, --compact : تولید خروجی JWE با استفاده از سریال‌سازی فشرده (compact serialization)

رمزنگاری داده‌ها با یک کلید متقارن با استفاده از JWE JSON Serialization:

$ jose jwk gen -i '{"alg":"A128GCM"}' -o key.jwk
$ jose jwe enc -I msg.txt -k key.jwk -o msg.jwe

رمزنگاری داده‌ها با یک گذرواژه با استفاده از JWE Compact Serialization:

$ jose jwe enc -I msg.txt -p -c -o msg.jwe
Please enter an encryption password:
Please re-enter the previous password:

فشرده‌سازی متن‌آشکار (plaintext) پیش از رمزنگاری:

$ jose jwe enc -i '{"protected":{"zip":"DEF"}}' ...

رمزنگاری با دو کلید و دو گذرواژه:

$ jose jwk gen -i '{"alg":"ECDH-ES+A128KW"}' -o ec.jwk
$ jose jwk gen -i '{"alg":"RSA1_5"}' -o rsa.jwk
$ jose jwe enc -I msg.txt -p -k ec.jwk -p -k rsa.jwk -o msg.jwe
Please enter a password:
Please re-enter the previous password:
Please enter a password:
Please re-enter the previous password:

Nathaniel McCallum <npmccallum@redhat.com>

jose-jwe-dec(1), jose-jwe-fmt(1)

06/09/2026