OPENSSL-KDF(1ssl) OpenSSL OPENSSL-KDF(1ssl) نام (NAME) openssl-kdf - محاسبه توابع اشتقاق کلید خلاصه دستور (SYNOPSIS) openssl kdf [-help] [-cipher] [-digest] [-mac] [-kdfopt nm:v] [-keylen num] [-out filename] [-binary] [-provider name] [-provider-path path] [-provparam [name:]key=value] [-propquery propq] kdf_name توضیحات (DESCRIPTION) توابع اشتقاق کلید یک کلید اشتقاق‌یافته را از یک کلید سری یا گذرواژه تولید می‌کنند. گزینه‌ها (OPTIONS) -help نمایش پیام راهنمای نحوه استفاده. -keylen num اندازه خروجی کلید اشتقاق‌یافته. این فیلد الزامی است. -out filename نام فایل خروجی، یا خروجی استاندارد به صورت پیش‌فرض. -binary تولید خروجی کلید اشتقاق‌یافته به صورت باینری. در صورت مشخص نشدن، به صورت پیش‌فرض از قالب متنی هگزادسیمال استفاده می‌شود. -cipher name مشخص کردن رمز (سایفر) مورد استفاده توسط KDF. همه الگوریتم‌های KDF به رمز نیاز ندارند و استفاده از این گزینه در چنین مواردی خطاست. -digest name مشخص کردن دایجست (خلاصه پیام) مورد استفاده توسط KDF. همه الگوریتم‌های KDF به دایجست نیاز ندارند و استفاده از این گزینه در چنین مواردی خطاست. برای مشاهده فهرست دایجست‌های پشتیبانی‌شده، از "openssl list -digest-commands" استفاده کنید. -mac name مشخص کردن کد اصالت‌سنجی پیام (MAC) مورد استفاده توسط KDF. همه الگوریتم‌های KDF به MAC نیاز ندارند و استفاده از این گزینه در چنین مواردی خطاست. -kdfopt nm:v ارسال گزینه‌ها به الگوریتم KDF. فهرست کاملی از پارامترها را می‌توان در بخش "PARAMETERS" در EVP_KDF(3) یافت. نام‌های متداول پارامترهای مورد استفاده توسط EVP_KDF_CTX_set_params() عبارتند از: key:string کلید سری را به صورت یک رشته الفبایی-عددی مشخص می‌کند (تنها در صورتی استفاده شود که کلید فقط شامل نویسه‌های قابل چاپ باشد). طول رشته باید با هرگونه محدودیت‌های الگوریتم KDF مطابقت داشته باشد. برای بیشتر الگوریتم‌های KDF باید یک کلید مشخص شود. hexkey:string جایگزینی برای گزینه key: که در آن کلید سری به فرم هگزادسیمال (دو رقم هگز به ازای هر بایت) مشخص می‌شود. pass:string گذرواژه را به صورت یک رشته الفبایی-عددی مشخص می‌کند (تنها در صورتی استفاده شود که گذرواژه فقط شامل نویسه‌های قابل چاپ باشد). گذرواژه باید برای الگوریتم‌های PBKDF2 و scrypt مشخص شود. hexpass:string جایگزینی برای گزینه pass: که در آن گذرواژه به فرم هگزادسیمال (دو رقم هگز به ازای هر بایت) مشخص می‌شود. salt:string یک نمک (salt) رمزنگاری غیرمحرمانه و یکتا را به صورت یک رشته الفبایی-عددی مشخص می‌کند (تنها در صورتی استفاده شود که فقط شامل نویسه‌های قابل چاپ باشد). طول آن باید با هرگونه محدودیت‌های الگوریتم KDF مطابقت داشته باشد. پارامتر نمک (salt) برای چندین الگوریتم KDF مانند EVP_KDF-PBKDF2(7) الزامی است. hexsalt:string جایگزینی برای گزینه salt: که در آن نمک به فرم هگزادسیمال (دو رقم هگز به ازای هر بایت) مشخص می‌شود. info:string برخی پیاده‌سازی‌های KDF، مانند EVP_KDF-HKDF(7)، یک پارامتر 'info' برای پیوند دادن ماده کلید اشتقاق‌یافته به اطلاعات خاص برنامه و زمینه دریافت می‌کنند. آرگومان info، fixed info، other info یا shared info را به صورت یک رشته الفبایی-عددی مشخص می‌کند (تنها در صورتی استفاده شود که فقط شامل نویسه‌های قابل چاپ باشد). طول آن باید با هرگونه محدودیت‌های الگوریتم KDF مطابقت داشته باشد. hexinfo:string جایگزینی برای گزینه info: که در آن info به فرم هگزادسیمال (دو رقم هگز به ازای هر بایت) مشخص می‌شود. digest:string این گزینه با گزینه -digest یکسان است. cipher:string این گزینه با گزینه -cipher یکسان است. mac:string این گزینه با گزینه -mac یکسان است. -provider name -provider-path path -provparam [name:]key=value -propquery propq بخش "Provider Options" را در openssl(1)، provider(7) و property(7) ببینید. kdf_name نام یک الگوریتم KDF پشتیبانی‌شده مورد استفاده را مشخص می‌کند. نام الگوریتم‌های پشتیبانی‌شده شامل TLS1-PRF، HKDF، SSKDF، PBKDF2، SSHKDF، X942KDF-ASN1، X942KDF-CONCAT، X963KDF و SCRYPT است. مثال‌ها (EXAMPLES) استفاده از TLS1-PRF برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک کلید سری و seed: openssl kdf -keylen 16 -kdfopt digest:SHA2-256 -kdfopt key:secret \ -kdfopt seed:seed TLS1-PRF استفاده از HKDF برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک کلید سری، نمک (salt) و info: openssl kdf -keylen 10 -kdfopt digest:SHA2-256 -kdfopt key:secret \ -kdfopt salt:salt -kdfopt info:label HKDF استفاده از SSKDF همراه با KMAC برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک کلید سری، نمک (salt) و info: openssl kdf -keylen 64 -kdfopt mac:KMAC-128 -kdfopt maclen:20 \ -kdfopt hexkey:b74a149a161545 -kdfopt hexinfo:348a37a2 \ -kdfopt hexsalt:3638271ccd68a2 SSKDF استفاده از SSKDF همراه با HMAC برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک کلید سری، نمک (salt) و info: openssl kdf -keylen 16 -kdfopt mac:HMAC -kdfopt digest:SHA2-256 \ -kdfopt hexkey:b74a149a -kdfopt hexinfo:348a37a2 \ -kdfopt hexsalt:3638271c SSKDF استفاده از SSKDF همراه با Hash برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک کلید سری، نمک (salt) و info: openssl kdf -keylen 14 -kdfopt digest:SHA2-256 \ -kdfopt hexkey:6dbdc23f045488 \ -kdfopt hexinfo:a1b2c3d4 SSKDF استفاده از SSHKDF برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک کلید سری، هش و session_id: openssl kdf -keylen 16 -kdfopt digest:SHA2-256 \ -kdfopt hexkey:0102030405 \ -kdfopt hexxcghash:06090A \ -kdfopt hexsession_id:01020304 \ -kdfopt type:A SSHKDF استفاده از PBKDF2 برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک گذرواژه و نمک (salt): openssl kdf -keylen 32 -kdfopt digest:SHA256 -kdfopt pass:password \ -kdfopt salt:salt -kdfopt iter:2 PBKDF2 استفاده از scrypt برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک گذرواژه و نمک (salt): openssl kdf -keylen 64 -kdfopt pass:password -kdfopt salt:NaCl \ -kdfopt n:1024 -kdfopt r:8 -kdfopt p:16 \ -kdfopt maxmem_bytes:10485760 SCRYPT نکات (NOTES) سازوکارهای KDF در دسترس، به گزینه‌های استفاده‌شده در زمان ساخت OpenSSL بستگی خواهند داشت. همچنین ببینید (SEE ALSO) openssl(1), openssl-pkeyutl(1), EVP_KDF(3), EVP_KDF-SCRYPT(7), EVP_KDF-TLS1_PRF(7), EVP_KDF-PBKDF2(7), EVP_KDF-HKDF(7), EVP_KDF-SS(7), EVP_KDF-SSHKDF(7), EVP_KDF-X942-ASN1(7), EVP_KDF-X942-CONCAT(7), EVP_KDF-X963(7) تاریخچه (HISTORY) در OpenSSL 3.0 اضافه شد. حق نشر (COPYRIGHT) کپی‌رایت ۲۰۱۹-۲۰۲۳ نویسندگان پروژه OpenSSL. کلیه حقوق محفوظ است. تحت مجوز آپاچی نسخه ۲.۰ («مجوز») منتشر شده است. شما مجاز به استفاده از این فایل نیستید مگر با رعایت شرایط این مجوز. می‌توانید نسخه‌ای از این مجوز را در فایل LICENSE در توزیع کد منبع یا در دریافت کنید. 3.6.4 2026-08-25 OPENSSL-KDF(1ssl)