"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إنشاء مفتاح RSA باستخدام JavaScript وPython

كيفية إنشاء مفتاح RSA باستخدام JavaScript وPython

تم النشر بتاريخ 2024-12-22
تصفح:633

How to Generate RSA Key Using JavaScript and Python

في العصر الرقمي الحالي، يعد ضمان أمان المعلومات الحساسة أمرًا بالغ الأهمية. وتساعد تقنية RSA، إحدى تقنيات التشفير الأكثر استخدامًا، على تحقيق ذلك من خلال السماح بالاتصال الآمن وحماية البيانات. إذا كنت مبتدئًا وتتطلع إلى تعلم كيفية إنشاء أزواج مفاتيح RSA، فسيرشدك هذا البرنامج التعليمي خلال العملية في كل من JavaScript وPython.

ما هو آر إس إيه؟

RSA (Rivest-Shamir-Adleman) هو نظام تشفير للمفتاح العام يستخدم لنقل البيانات بشكل آمن. يستخدم مفتاحين:

المفتاح العام: يستخدم لتشفير الرسائل أو التحقق من التوقيعات الرقمية.
المفتاح الخاص: يستخدم لفك تشفير الرسائل أو توقيع المستندات.
ترتبط المفاتيح رياضيًا، ولكن يكاد يكون من المستحيل استخلاص المفتاح الخاص من المفتاح العام، مما يجعل RSA طريقة تشفير آمنة للغاية.

لماذا نستخدم آر إس إيه؟

تشفير البيانات: تشفير المعلومات الحساسة لتأمين الاتصال.
التوقيعات الرقمية: التحقق من صحة الرسائل أو المستندات.
المصادقة: توفير آليات مصادقة آمنة.
الآن، دعونا نستكشف كيفية إنشاء مفاتيح RSA باستخدام JavaScript وPython، وهما لغتان برمجيتان شائعتان.

إنشاء مفاتيح RSA باستخدام OpenSSL (سطر الأوامر)

قبل الغوص في التعليمات البرمجية، يمكنك بسهولة إنشاء مفاتيح RSA باستخدام OpenSSL. OpenSSL هي أداة مستخدمة على نطاق واسع لعمليات التشفير.

إنشاء مفتاح RSA خاص 2048 بت:

openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048

استخراج المفتاح العام:

openssl rsa -pubout -in private_key.pem -out public_key.pem

سينتج عن ذلك ملفين: Private_key.pem (المفتاح الخاص) و public_key.pem (المفتاح العام).

توليد مفاتيح RSA في جافا سكريبت

في JavaScript، يمكنك استخدام وحدة التشفير الخاصة بـ Node.js لإنشاء مفاتيح RSA. إليك دليل خطوة بخطوة.

دليل خطوة بخطوة (جافا سكريبت)
قم بإعداد بيئتك: تأكد من تثبيت Node.js على نظامك. إذا لم يكن الأمر كذلك، فيمكنك تنزيله منnodejs.org.

إنشاء زوج مفاتيح RSA: يوفر Node.js وحدة التشفير، التي توفر وظائف مدمجة لعمليات التشفير.

const { generateKeyPairSync } = require('crypto');

const { publicKey, privateKey } = generateKeyPairSync('rsa', {
  modulusLength: 2048,
  publicKeyEncoding: {
    type: 'spki',
    format: 'pem'
  },
  privateKeyEncoding: {
    type: 'pkcs8',
    format: 'pem'
  }
});

console.log('Public Key:\n', publicKey);
console.log('Private Key:\n', privateKey);

النقاط الرئيسية:
طول المعامل: 2048 يضمن أن طول المفتاح هو 2048 بت.
يتم إرجاع المفاتيح العامة والخاصة التي تم إنشاؤها بتنسيق PEM، والذي يستخدم على نطاق واسع لتخزين مفاتيح التشفير.
باستخدام هذا البرنامج النصي، يمكنك الآن إنشاء مفاتيح RSA في JavaScript واستخدامها للتشفير أو التوقيعات الرقمية أو الاتصال الآمن.

توليد مفاتيح RSA في بايثون

توفر بايثون مكتبة ممتازة تسمى التشفير لإنشاء مفاتيح RSA. اتبع الخطوات أدناه لإنشاء مفاتيح RSA في بايثون.

دليل خطوة بخطوة (بايثون)
تثبيت مكتبة التشفير: إذا لم تكن مكتبة التشفير مثبتة لديك، فيمكنك تثبيتها بسهولة باستخدام النقطة:

pip install cryptography

إنشاء مفاتيح RSA: بعد تثبيت المكتبة، استخدم برنامج Python النصي التالي لإنشاء زوج مفاتيح RSA الخاص بك.

from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization

# Generate a private key
private_key = rsa.generate_private_key(
    public_exponent=65537,
    key_size=2048,
    backend=default_backend()
)

# Save the private key in PEM format
with open("private_key.pem", "wb") as private_file:
    private_file.write(
        private_key.private_bytes(
            encoding=serialization.Encoding.PEM,
            format=serialization.PrivateFormat.TraditionalOpenSSL,
            encryption_algorithm=serialization.NoEncryption()
        )
    )

# Generate the public key from the private key
public_key = private_key.public_key()

# Save the public key in PEM format
with open("public_key.pem", "wb") as public_file:
    public_file.write(
        public_key.public_bytes(
            encoding=serialization.Encoding.PEM,
            format=serialization.PublicFormat.SubjectPublicKeyInfo
        )
    )

print("Keys generated and saved as PEM files!")

النقاط الرئيسية:
يقوم هذا البرنامج النصي بإنشاء مفتاح خاص بطول 2048 بت وأس عام يبلغ 65537 (اختيار شائع لـ RSA).
يتم تخزين المفاتيح الخاصة والعامة بتنسيق PEM لسهولة الاستخدام.
فهم الإخراج
سواء كنت تعمل في JavaScript أو Python، سيكون الناتج هو زوج مفاتيح RSA الخاص بك:

المفتاح الخاص: يستخدم هذا المفتاح لفك تشفير البيانات أو توقيع المستندات. ويجب أن تبقى سرية.
المفتاح العام: يستخدم هذا المفتاح لتشفير البيانات أو التحقق من التوقيعات. ويمكن مشاركتها بأمان مع الآخرين.
إليك ما يبدو عليه مفتاح RSA الخاص بتنسيق PEM:

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA...
-----END RSA PRIVATE KEY-----

الاستخدامات العملية لمفاتيح RSA

تشفير وفك تشفير الرسائل: تشفير رسالة باستخدام المفتاح العام وفك تشفيرها باستخدام المفتاح الخاص المقابل.
توقيع المستندات والتحقق منها: قم بتوقيع مستند باستخدام المفتاح الخاص، ويمكن لأي شخص لديه المفتاح العام التحقق من صحة التوقيع.

خاتمة

يعد إنشاء مفتاح RSA ضروريًا للاتصال الآمن والتشفير والتوقيعات الرقمية. في هذا الدليل، أوضحنا كيفية إنشاء أزواج مفاتيح RSA في كل من JavaScript وPython. باستخدام وحدة التشفير Node.js ومكتبة التشفير في Python، يمكنك بسهولة إنشاء أزواج مفاتيح RSA آمنة لتطبيقاتك.

الوجبات السريعة الرئيسية:

يتضمن RSA زوجًا من المفاتيح: مفتاح عام ومفتاح خاص.
تعتبر عملية إنشاء مفاتيح RSA في JavaScript وPython عملية واضحة ومباشرة باستخدام المكتبات المناسبة.
يمكن استخدام هذه المفاتيح لأغراض أمنية مختلفة، مثل التشفير والمصادقة والتوقيعات الرقمية.
باتباع هذا الدليل، يمكنك البدء في تنفيذ ميزات أمان قوية في مشاريعك. برمجة سعيدة!

الأسئلة الشائعة

س: ما هو حجم مفتاح RSA المثالي للتشفير القوي؟
ج: يتم استخدام مفتاح 2048 بت بشكل شائع، ولكن للحصول على أمان أقوى، يوصى بمفاتيح 4096 بت.

س: هل يمكنني مشاركة مفتاحي الخاص؟
ج: لا، يجب أن يظل المفتاح الخاص سريًا دائمًا. يمكن مشاركة المفتاح العام فقط.

س: ما هو تنسيق PEM؟
ج: PEM (البريد المعزز للخصوصية) هو تنسيق مشفر بـ base64 يستخدم لتخزين مفاتيح التشفير والشهادات.

بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/shubhamkhan/how-to-generate-rsa-key-using-javascript-and-python-2l6h?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3