| OPENSSL-ENC(1ssl) | OpenSSL | OPENSSL-ENC(1ssl) |
الاسم
openssl-enc - روتينات التعمية المتناظرة
موجز
openssl enc|تعمية [-تعمية] [-help] [-list] [-ciphers] [-in اسم_الملف] [-out اسم_الملف] [-pass معطى] [-e] [-d] [-a] [-base64] [-A] [-k كلمة_السر] [-kfile اسم_الملف] [-K مفتاح] [-iv IV] [-S ملح] [-salt] [-nosalt] [-z] [-md ملخص] [-iter عدد] [-pbkdf2] [-saltlen حجم] [-p] [-P] [-bufsize رقم] [-nopad] [-v] [-debug] [-none] [-skeymgmt skeymgmt] [-skeyopt خيار:قيمة] [-engine معرف] [-rand ملفات] [-writerand ملف] [-provider اسم] [-provider-path مسار] [-provparam [اسم:]مفتاح=قيمة] [-propquery propq]
openssl تعمية [...]
الوصف
تسمح أوامر التعمية المتناظرة بتعمية البيانات أو فك تعميتها باستخدام خوارزميات تعمية كتلية أو انسيابية متنوعة باستخدام مفاتيح مبنية على كلمات سر أو مقدمة صراحة. يمكن أيضًا تنفيذ ترميز أو فك ترميز Base64 إما بمفرده أو بالإضافة إلى التعمية أو فك التعمية.
الخيارات
- -تعمية
- خوارزمية التعمية المراد استخدامها.
- -help
- اطبع رسالة الاستخدام.
- -list
- اسرد جميع خوارزميات التعمية المدعومة.
- -ciphers
- اسم مستعار لـ -list لعرض جميع خوارزميات التعمية المدعومة.
- -in اسم_الملف
- اسم ملف المدخلات، المدخلات القياسية مبدئيًا.
- -out اسم_الملف
- اسم ملف المخرجات، المخرجات القياسية مبدئيًا.
- -pass معطى
- مصدر كلمة السر. لمزيد من المعلومات حول تنسيق المعطى انظر openssl-passphrase-options(1).
- -e
- عمِّ البيانات المدخلة: هذا هو الخيار المبدئي.
- -d
- فك تعمية البيانات المدخلة.
- -a
- عالج
البيانات
بترميز Base64.
هذا يعني
أنه إذا
كانت
التعمية
جارية،
فسيتم
ترميز
البيانات
بـ base64 بعد
التعمية.
وإذا ضُبط
فك
التعمية،
فسيتم فك
ترميز
البيانات
المدخلة من
base64 قبل فك
تعميتها.
عند عدم توفير الخيار -A، يُدرج سطر جديد بعد كل 64 محرفًا عند الترميز، ويُتوقع وجود سطر جديد ضمن أول 1024 بايت من المدخلات عند فك الترميز.
- -base64
- مثل -a
- -A
- إذا ضُبط الخيار -a، فإن ترميز base64 ينتج مخرجات بدون أي محرف سطر جديد، وفك ترميز base64 لا يتطلب أي أسطر جديدة. لذا قد يكون من المفيد استخدام الخيار -A عند فك ترميز مدخلات مجهولة.
- -k كلمة_السر
- كلمة السر التي سيُشتق منها المفتاح. هذا من أجل التوافق مع إصدارات OpenSSL السابقة. حل محلها معامل -pass.
- -kfile اسم_الملف
- اقرأ كلمة السر التي سيُشتق منها المفتاح من السطر الأول من اسم_الملف. هذا من أجل التوافق مع إصدارات OpenSSL السابقة. حل محلها معامل -pass.
- -md مجموع
- استخدم الملخص المحدد لإنشاء المفتاح من عبارة المرور. خوارزمية المبدئية هي sha-256.
- -iter عدد
- استخدم عددًا معينًا من التكرارات على كلمة السر في اشتقاق مفتاح التعمية. تزيد القيم العالية من الوقت المطلوب للهجوم بالقوة الغاشمة على الملف الناتج. يُمكن هذا الخيار استخدام خوارزمية PBKDF2 لاشتقاق المفتاح.
- -pbkdf2
- استخدم خوارزمية PBKDF2 مع عدد تكرار مبدئي يبلغ 10000 ما لم يُحدد خلاف ذلك عبر خيار سطر الأوامر -iter.
- -saltlen
- اضبط طول الملح المراد استخدامه عند استخدام خيار -pbkdf2. لأسباب تتعلق بالتوافق، القيمة المبدئية هي 8 بايتات. القيمة القصوى حاليًا هي 16 بايتًا. إذا لم يُستخدم الخيار -pbkdf2، فسيتم تجاهل هذا الخيار واستخدام طول ملح ثابت قدره 8. يجب أيضًا استخدام طول الملح المستخدم عند التعمية عند فك التعمية.
- -nosalt
- لا تستخدم الملح في روتينات اشتقاق المفاتيح. ينبغي ألا يُستخدم هذا الخيار إلا لأغراض الاختبار أو التوافق مع النسخ القديمة جدًا من OpenSSL.
- -salt
- استخدم الملح (يُولد عشوائيًا أو يُوفر عبر الخيار -S) عند التعمية، هذا هو الخيار المبدئي.
- -S ملح
- المتح الفعلي المراد استخدامه: يجب أن يُتمثل كسلسلة من أرقام ست عشرية. إذا استُخدم هذا الخيار أثناء التعمية، فستكون هناك حاجة إلى القيمة ذاتها مرة أخرى أثناء فك التعمية. قد يُقص هذا الملح أو يُحشى بالأصفار لمطابقة طول الملح (انظر -saltlen).
- -K مفتاح
- المفتاح الفعلي المراد استخدامه: يجب أن يُتمثل كسلسلة تتكون فقط من أرقام ست عشرية. إذا حُدد المفتاح فقط، فيجب بالإضافة إلى ذلك تحديد IV باستخدام الخيار -iv. عندما يتم تحديد كل من المفتاح وكلمة السر، سيُستخدم المفتاح المعطى مع الخيار -K وسيُؤخذ الـ IV المولد من كلمة السر. ليس من المنطقي تحديد كل من المفتاح وكلمة السر.
- -iv IV
- الـ IV الفعلي المراد استخدامه: يجب أن يُتمثل كسلسلة تتكون فقط من أرقام ست عشرية. عندما يُحدد المفتاح فقط باستخدام الخيار -K، يجب تعريف IV صراحة. عندما تُحدد كلمة سر باستخدام أحد الخيارات الأخرى، يُولد الـ IV من كلمة السر هذه.
- -p
- اطبع المفتاح و الـ IV المستخدمين.
- -P
- اطبع المفتاح و الـ IV المستخدمين ثم اخرج فورًا: لا تقم بأي تعمية أو فك تعمية.
- -bufsize رقم
- اضبط حجم المخزن المؤقت للإدخال والإخراج.
- -nopad
- عطّل حشوة الكتل القياسية.
- -v
- طباعة مسهبة؛ اعرض بعض الإحصائيات حول الإدخال والإخراج وأحجام المخازن المؤقتة.
- -debug
- نقّح الـ BIOs المستخدمة للإدخال والإخراج.
- -z
- اضغط أو فك ضغط البيانات المعماة باستخدام zlib بعد التعمية أو قبل فك التعمية. هذا الخيار موجود فقط إذا كان OpenSSL قد صُرف مع خيار zlib أو zlib-dynamic.
- -none
- استخدم تعمية NULL (لا تعمية ولا فك تعمية للمدخلات).
- -skeymgmt skeymgmt
- قد يدعم بعض
المزودين
كائنات
المفاتيح
المتناظرة
غير
الشفافة.
لاستخدامها،
نحتاج
لمعرفة اسم
EVP_SKEYMGMT المراد
استخدامه.
إذا لم
يُحدد،
سيُستخدم
اسم
خوارزمية
التعمية.
لمعرفة اسم إدارة المفاتيح المتناظرة المناسبة، يرجى الرجوع إلى مخرجات الأمر "openssl list -skey-managers".
- -skeyopt خيار:قيمة
- للحصول على مفتاح متناظر غير شفاف موجود أو لتوليد مفتاح جديد، تُحدد خيارات المفتاح كـ opt:value. لا يمكن استخدام هذه الخيارات مع أي خيارات تلمح لمفتاح خام بشكل مباشر أو غير مباشر.
- -rand ملفات، -writerand ملف
- انظر "خيارات الحالة العشوائية" في openssl(1) لمزيد من التفاصيل.
- -provider اسم
- -provider-path مسار
- -provparam [الاسم:]مفتاح=قيمة
- -propquery propq
- انظر "خيارات المزود" في openssl(1)، و provider(7)، و property(7).
- -engine معرف
- انظر "خيارات المحرك" في openssl(1). هذا الخيار مهجور.
ملاحظات
يمكن استدعاء البرنامج إما كـ "openssl تعمية" أو "openssl enc -تعمية". الشكل الأول لا يعمل مع خوارزميات التعمية التي توفرها المحركات، لأن هذا الشكل يُعالج قبل قراءة ملف الإعداد وقبل تحميل أي محركات. استخدم أمر openssl-list(1) للحصول على قائمة بخوارزميات التعمية المدعومة.
المحركات التي توفر خوارزميات تعمية جديدة تمامًا (مثل محرك ccgost الذي يوفر خوارزمية gost89) ينبغي ضبطها في ملف الإعداد. المحركات المحددة في سطر الأوامر باستخدام خيار -engine يمكن استخدامها فقط للتطبيقات المدعومة عتاديًا لخوارزميات التعمية المدعومة من قبل لب OpenSSL أو محرك آخر محدد في ملف الإعداد.
عندما يسرد أمر enc خوارزميات التعمية المدعومة، تُسرد أيضًا خوارزميات التعمية التي توفرها المحركات المحددة في ملفات الإعداد.
سيُطلب إدخال كلمة سر لاشتقاق المفتاح و الـ IV إذا لزم الأمر.
ينبغي دائمًا استخدام خيار -salt إذا كان المفتاح يُشتق من كلمة سر، ما لم ترد التوافق مع إصدارات OpenSSL السابقة.
بدون خيار -salt، من الممكن إجراء هجمات قاموس فعالة على كلمة السر ومهاجمة البيانات المعماة بخوارزمية تعمية انسيابية. والسبب في ذلك هو أنه بدون الملح، تولد نفس كلمة السر دائمًا نفس مفتاح التعمية.
عندما يُولد الملح عشوائيًا (وهذا يعني عند التعمية باستخدام عبارة مرور دون إعطاء ملح صريح باستخدام الخيار -S)، تُحجز البايتات الأولى من البيانات المعماة لتخزين الملح لفك التعمية لاحقًا.
بعض خوارزميات التعمية لا تملك مفاتيح كبيرة وأخرى لها تبعات أمنية إذا لم تُستخدم بشكل صحيح. يُنصح المبتدئ باستخدام خوارزمية تعمية كتلية قوية، مثل AES، في وضع CBC.
تستخدم جميع خوارزميات التعمية الكتلية عادةً حشوة PKCS#7، المعروفة أيضًا باسم حشوة الكتل القياسية. يسمح هذا بإجراء فحص أولي لسلامة البيانات أو كلمة السر. ومع ذلك، وبما أن فرصة اجتياز البيانات العشوائية للاختبار أكبر من 1 من 256، فإنه ليس اختبارًا جيدًا جدًا.
إذا عُطلت الحشوة، فيجب أن تكون البيانات المدخلة من مضاعفات طول كتلة خوارزمية التعمية.
جميع خوارزميات RC2 تملك نفس طول المفتاح وطول المفتاح الفعال.
تستخدم خوارزميات Blowfish و RC5 مفتاحًا بطول 128 بت.
يرجى ملاحظة أن OpenSSL 3.0 غير تأثير الخيار -S. أي قيمة ملح صريحة تُحدد عبر هذا الخيار لم تعد تُلحق ببداية النص المعمى عند التعمية، ويجب توفيرها صراحة مرة أخرى عند فك التعمية. وبالعكس، عندما يُستخدم الخيار -S أثناء فك التعمية، يُتوقع ألا يحتوي النص المعمى على قيمة ملح في بدايته.
عند استخدام OpenSSL 3.0 أو أحدث لفك تعمية بيانات عُميت بملح صريح تحت OpenSSL 1.1.1 لا تستخدم الخيار -S، حيث سيُقرأ الملح حينها من النص المعمى. لتوليد نص معمى يمكن فك تعميته بـ OpenSSL 1.1.1 لا تستخدم الخيار -S، حيث سيُولد الملح حينها عشوائيًا ويُلحق ببداية المخرجات.
خوارزميات التعمية المدعومة
لاحظ أن بعض خوارزميات التعمية هذه يمكن تعطيلها وقت التصريف وبعضها متاح فقط إذا ضُبط محرك مناسب في ملف الإعداد. المخرجات عند استدعاء هذا الأمر مع خيار -list (أي "openssl enc -list") هي قائمة بخوارزميات التعمية المدعومة من قبل نسختك من OpenSSL، بما في ذلك تلك التي توفرها المحركات المضبوطة.
لا يدعم هذا الأمر أوضاع التعمية المستوثقة مثل CCM و GCM، ولن يدعم مثل هذه الأوضاع في المستقبل. وذلك بسبب الاضطرار للبدء بانسياب المخرجات (على سبيل المثال، إلى المخرجات القياسية عندما لا يُستخدم -out) قبل أن يمكن التحقق من وسم الاستيثاق. عندما يُستخدم هذا الأمر في أنبوب، لن يتمكن الطرف المتلقي من التراجع عند فشل الاستيثاق. أوضاع AEAD المستخدمة حاليًا بشكل شائع تعاني أيضًا من فشل ذريع في السرية و/أو السلامة عند إعادة استخدام المفتاح/iv/المنوع (nonce)، وبما أن openssl enc يلقي بعبء إدارة المفتاح/iv/المنوع بالكامل على المستخدم، فإن خطر تعريض أوضاع AEAD كبير جدًا بحيث لا يمكن السماح به. تؤثر قضايا إدارة المفتاح/iv/المنوع هذه أيضًا على الأوضاع الأخرى المعروضة حاليًا في هذا الأمر، لكن أوضاع الفشل تكون أقل حدة في هذه الحالات، ولا يمكن إزالة هذه الوظيفة في فرع إصدار مستقر. للتعمية الكبيرة للبيانات، سواء باستخدام أوضاع التعمية المستوثقة أو أوضاع أخرى، يُنصح بـ openssl-cms(1)، حيث إنه يوفر تنسيق بيانات قياسيًا ويؤدي إدارة المفتاح/iv/المنوع المطلوبة.
عند استخدام enc مع أوضاع غلاف المفاتيح (key wrapping)، لا يمكن انسياب البيانات المدخلة، مما يعني أنها يجب أن تُعالج في تمريرة واحدة. وبالتالي، يجب أن يكون حجم البيانات المدخلة أقل من حجم المخزن المؤقت (-bufsize معطى، المبدئي هو 8*1024 بايت). تتطلب خوارزميات '*-wrap' أن تكون المدخلات من مضاعفات الـ 8 بايت، لعدم وجود حشوة. تسمح خوارزميات '*-wrap-pad' بأي طول للمدخلات. في كلتا الحالتين، لا حاجة لـ IV. انظر المثال أدناه.
base64 Base 64 bf-cbc Blowfish في وضع CBC bf اسم مستعار لـ bf-cbc blowfish اسم مستعار لـ bf-cbc bf-cfb Blowfish في وضع CFB bf-ecb Blowfish في وضع ECB bf-ofb Blowfish في وضع OFB cast-cbc CAST في وضع CBC cast اسم مستعار لـ cast-cbc cast5-cbc CAST5 في وضع CBC cast5-cfb CAST5 في وضع CFB cast5-ecb CAST5 في وضع ECB cast5-ofb CAST5 في وضع OFB chacha20 خوارزمية ChaCha20 des-cbc DES في وضع CBC des اسم مستعار لـ des-cbc des-cfb DES في وضع CFB des-ofb DES في وضع OFB des-ecb DES في وضع ECB des-ede-cbc Two key triple DES EDE في وضع CBC des-ede Two key triple DES EDE في وضع ECB des-ede-cfb Two key triple DES EDE في وضع CFB des-ede-ofb Two key triple DES EDE في وضع OFB des-ede3-cbc Three key triple DES EDE في وضع CBC des-ede3 Three key triple DES EDE في وضع ECB des3 اسم مستعار لـ des-ede3-cbc des-ede3-cfb Three key triple DES EDE في وضع CFB des-ede3-ofb Three key triple DES EDE في وضع OFB desx خوارزمية DESX. gost89 GOST 28147-89 في وضع CFB (يوفرها محرك ccgost) gost89-cnt GOST 28147-89 في وضع CNT (يوفرها محرك ccgost) idea-cbc خوارزمية IDEA في وضع CBC idea نفس idea-cbc idea-cfb IDEA في وضع CFB idea-ecb IDEA في وضع ECB idea-ofb IDEA في وضع OFB rc2-cbc 128 بت RC2 في وضع CBC rc2 اسم مستعار لـ rc2-cbc rc2-cfb 128 بت RC2 في وضع CFB rc2-ecb 128 بت RC2 في وضع ECB rc2-ofb 128 بت RC2 في وضع OFB rc2-64-cbc 64 بت RC2 في وضع CBC rc2-40-cbc 40 بت RC2 في وضع CBC rc4 128 بت RC4 rc4-64 64 بت RC4 rc4-40 40 بت RC4 rc5-cbc تعمية RC5 في وضع CBC rc5 اسم مستعار لـ rc5-cbc rc5-cfb تعمية RC5 في وضع CFB rc5-ecb تعمية RC5 في وضع ECB rc5-ofb تعمية RC5 في وضع OFB seed-cbc تعمية SEED في وضع CBC seed اسم مستعار لـ seed-cbc seed-cfb تعمية SEED في وضع CFB seed-ecb تعمية SEED في وضع ECB seed-ofb تعمية SEED في وضع OFB sm4-cbc تعمية SM4 في وضع CBC sm4 اسم مستعار لـ sm4-cbc sm4-cfb تعمية SM4 في وضع CFB sm4-ctr تعمية SM4 في وضع CTR sm4-ecb تعمية SM4 في وضع ECB sm4-ofb تعمية SM4 في وضع OFB aes-[128|192|256]-cbc 128/192/256 بت AES في وضع CBC aes[128|192|256] اسم مستعار لـ aes-[128|192|256]-cbc aes-[128|192|256]-cfb 128/192/256 بت AES في وضع 128 بت CFB aes-[128|192|256]-cfb1 128/192/256 بت AES في وضع 1 بت CFB aes-[128|192|256]-cfb8 128/192/256 بت AES في وضع 8 بت CFB aes-[128|192|256]-ctr 128/192/256 بت AES في وضع CTR aes-[128|192|256]-ecb 128/192/256 بت AES في وضع ECB aes-[128|192|256]-ofb 128/192/256 بت AES في وضع OFB aes-[128|192|256]-wrap غلاف المفاتيح باستخدام 128/192/256 بت AES aes-[128|192|256]-wrap-pad غلاف المفاتيح مع حشوة باستخدام 128/192/256 بت AES aria-[128|192|256]-cbc 128/192/256 بت ARIA في وضع CBC aria[128|192|256] اسم مستعار لـ aria-[128|192|256]-cbc aria-[128|192|256]-cfb 128/192/256 بت ARIA في وضع 128 بت CFB aria-[128|192|256]-cfb1 128/192/256 بت ARIA في وضع 1 بت CFB aria-[128|192|256]-cfb8 128/192/256 بت ARIA في وضع 8 بت CFB aria-[128|192|256]-ctr 128/192/256 بت ARIA في وضع CTR aria-[128|192|256]-ecb 128/192/256 بت ARIA في وضع ECB aria-[128|192|256]-ofb 128/192/256 بت ARIA في وضع OFB camellia-[128|192|256]-cbc 128/192/256 بت Camellia في وضع CBC camellia[128|192|256] اسم مستعار لـ camellia-[128|192|256]-cbc camellia-[128|192|256]-cfb 128/192/256 بت Camellia في وضع 128 بت CFB camellia-[128|192|256]-cfb1 128/192/256 بت Camellia في وضع 1 بت CFB camellia-[128|192|256]-cfb8 128/192/256 بت Camellia في وضع 8 بت CFB camellia-[128|192|256]-ctr 128/192/256 بت Camellia في وضع CTR camellia-[128|192|256]-ecb 128/192/256 بت Camellia في وضع ECB camellia-[128|192|256]-ofb 128/192/256 بت Camellia في وضع OFB
أمثلة
فقط رمز ملفًا ثنائيًا بـ base64:
openssl base64 -in file.bin -out file.b64
فك ترميز الملف ذاته
openssl base64 -d -in file.b64 -out file.bin
عمِّ ملفًا باستخدام AES-128 مستخدمًا كلمة سر يُطلب إدخالها واشتقاق مفتاح PBKDF2:
openssl enc -aes128 -pbkdf2 -in file.txt -out file.aes128
فك تعمية ملف باستخدام كلمة سر مقدمة:
openssl enc -aes128 -pbkdf2 -d -in file.aes128 -out file.txt \ -pass pass:<كلمة_السر>
عمِّ ملفًا ثم رمزه بـ base64 (ليمكن إرساله عبر البريد مثلاً) باستخدام AES-256 في وضع CTR واشتقاق مفتاح PBKDF2:
openssl enc -aes-256-ctr -pbkdf2 -a -in file.txt -out file.aes256
فك ترميز base64 لملف ثم فك تعميته باستخدام كلمة سر مقدمة في ملف:
openssl enc -aes-256-ctr -pbkdf2 -d -a -in file.aes256 -out file.txt \ -pass file:<ملف_كلمة_السر>
غلاف مفاتيح AES:
openssl enc -e -a -id-aes128-wrap-pad -K 000102030405060708090A0B0C0D0E0F -in file.bin أو openssl aes128-wrap-pad -e -a -K 000102030405060708090A0B0C0D0E0F -in file.bin
العلل
الخيار -A عند استخدامه مع ملفات كبيرة لا يعمل بشكل صحيح. من ناحية أخرى، عند فك ترميز base64 بدون الخيار -A، إذا لم تتضمن أول 1024 بايت من المدخلات محرف سطر جديد، فسيتم تجاهل أول سطرين من المدخلات.
أمر openssl enc يدعم فقط عددًا ثابتًا من الخوارزميات مع معاملات معينة. لذا إذا كنت تريد، على سبيل المثال، استخدام RC2 بمفتاح 76 بت أو RC4 بمفتاح 84 بت فلا يمكنك استخدام هذا البرنامج.
انظر أيضًا
التاريخ
غُيّر الملخص المبدئي من MD5 إلى SHA256 في OpenSSL 1.1.0.
أُضيف الخيار -list في OpenSSL 1.1.1e.
هُجر الخياران -ciphers و -engine في OpenSSL 3.0.
أُضيف الخيار -saltlen في OpenSSL 3.2.
أُضيف الخياران -skeymgmt و -skeyopt في OpenSSL 3.5.
حقوق النسخ
حقوق النشر 2000-2025 لمؤلفي مشروع OpenSSL. جميع الحقوق محفوظة.
مرخص بموجب رخصة Apache 2.0 (المشار إليها فيما يلي بـ ”الرخصة“). لا يجوز لك استخدام هذا الملف إلا وفقًا لشروط الرخصة. يمكنك الحصول على نسخة منها في الملف LICENSE الموجود في حزمة التوزيع المصدرية أو على الرابط https://www.openssl.org/source/license.html.
ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| 7 أبريل 2026 | 3.6.2 |