تعمل وحدة التشفير Node.js على تبسيط عملية إجراء عمليات التشفير. إليك كيفية استخدامه.

التشفير هو ممارسة تأمين الاتصالات والبيانات عن طريق تحويلها إلى تنسيقات لا يمكن فك تشفيرها إلا من قبل الأطراف المصرح لها.

Node.js التشفير الوحدة النمطية هي وحدة نمطية مضمنة توفر وظائف التشفير لتطبيقات Node.js. يوفر مجموعة من إمكانيات التشفير ، بما في ذلك التشفير وفك التشفير والتجزئة والتوقيعات الرقمية وتوليد الأرقام العشوائية الآمنة والمزيد.

هنا سوف تستكشف التطبيقات المختلفة لوحدة التشفير Node.js وكيف يمكنك استخدامها لتأمين تطبيقاتك.

تجزئة

التجزئة هي تقنية تشفير أحادية الاتجاه التي يمكنك استخدامها لتحويل مفتاح أو سلسلة معينة إلى إخراج بحجم ثابت يُعرف باسم التجزئة أو الملخص.

التجزئة هي وظيفة ذات اتجاه واحد مما يعني أنه عند تجزئة مفتاح أو سلسلة ، لا يمكنك الحصول على القيمة الأصلية من التجزئة التي تم إنشاؤها.

تدعم وحدة التشفير Node.js العديد من وظائف التجزئة مثل SHA-256 و SHA-512 و MD5 والمزيد.

يمكنك تجزئة البيانات باستخدام وحدة التشفير إنشاء تجزئة الطريقة ، والتي تأخذ خوارزمية التجزئة كوسيطة. تقوم الطريقة بإرجاع ملف تجزئة ، والذي يمكنك استخدامه لتجزئة البيانات باستخدام امتداد تحديث و استوعب طُرق.

instagram viewer

على سبيل المثال:

مقدار ثابت التشفير = يتطلب("تشفير");

مقدار ثابت البيانات = "كلمة المرور";

// إنشاء كائن تجزئة
مقدار ثابت hashAlgo = crypto.createHash ("sha256")

// تمرير البيانات المراد تجزئتها
hashAlgo.update (بيانات) ؛

// إنشاء التجزئة بالتنسيق المطلوب
مقدار ثابت hash = hashAlgo.digest ('عرافة');

وحدة التحكم.سجل(هاش: $ {التجزئة}`);

في المثال أعلاه ، وحدة التشفير إنشاء تجزئة إنشاء كائن تجزئة بامتداد شا 256 خوارزمية التجزئة. ال تحديث الأسلوب على كائن التجزئة يأخذ بيانات الإدخال ويجزئها. ثم استوعب تأخذ الطريقة معلمة ترميز ، وتحدد تنسيق قيمة تجزئة الإخراج ، وترجع التجزئة بالتنسيق المحدد (عرافة).

يعد التجزئة مفيدًا للتحقق من سلامة البيانات وتخزين كلمات المرور والتوقيعات الرقمية والمزيد.

توليد بيانات عشوائية

غالبًا ما تكون البيانات العشوائية الآمنة بشكل مشفر مطلوبة في التشفير والألعاب والاختبار لحالات الاستخدام المختلفة.

في التشفير ، يمكنك استخدام بيانات عشوائية لإنشاء مفاتيح وأملاح ومتجهات التهيئة لخوارزميات التشفير وفك التشفير.

في الألعاب ، يمكنك استخدام بيانات عشوائية لإنشاء مستويات اللعبة ، والشخصيات ، والعناصر ، والمزيد لمنع الغش والتأكد من أن اللعبة لا يمكن التنبؤ بها.

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

يمكنك إنشاء بيانات عشوائية باستخدام وحدات التشفير Node.js RandomBytes طريقة. تأخذ هذه الطريقة رقمًا كوسيطة وتقوم بإرجاع مخزن مؤقت للبايتات العشوائية.

يمثل هذا الرقم حجم البايت الذي ستنشئه الطريقة. ومع ذلك ، يجب ألا يكون الرقم أكبر من 2³¹ - 1 (2147483647) ، وهي أقصى قيمة يمكن تمثيلها بعدد صحيح ذي إشارة 32 بت.

على سبيل المثال:

مقدار ثابت التشفير = يتطلب("تشفير");

// إنشاء بايت عشوائي
مقدار ثابت RandomBytes = crypto.randomBytes (32);

// تحويل إلى سداسي عشري
مقدار ثابت randomString = randomBytes.toString ("عرافة");

وحدة التحكم.log (randomString) ؛ // يسجل سلسلة عشوائية بوحدة التحكم

تقوم كتلة التعليمات البرمجية أعلاه بإنشاء وتسجيل سلسلة عشوائية مكونة من 64 حرفًا سداسيًا عشريًا (32 بايت) في وحدة التحكم.

يعد إنشاء بيانات عشوائية آمنة بشكل مشفر أمرًا مهمًا لأنه يضمن عدم إمكانية التنبؤ بالبيانات العشوائية وعدم تمكن المهاجمين من معالجتها أو تخمينها.

التشفير وفك التشفير في Node.js

التشفير هو عملية تحويل النص العادي إلى نموذج غير قابل للقراءة (نص مشفر) باستخدام خوارزمية تشفير ومفتاح سري.

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

توفر وحدة التشفير Node.js الدعم للعديد من خوارزميات التشفير وفك التشفير ، بما في ذلك AES (معيار التشفير المتقدم) و DES (معيار تشفير البيانات) و RSA (ريفست - شامير - أدلمان).

كيفية تشفير البيانات في Node.js باستخدام وحدة التشفير

يمكنك تشفير البيانات باستخدام ملف crypto.createCipheriv () الطريقة ، والتي تأخذ خوارزمية التشفير والمفتاح السري وناقل التهيئة كمدخلات. يعتمد المفتاح السري على خوارزمية التشفير التي تستخدمها. على سبيل المثال ، ل خوارزمية aes-256 في سي بي سي الوضع ، يجب أن يكون طول المفتاح 32 بايت.

تقوم الطريقة بإرجاع ملف الشفرة ، والذي يمكنك استخدامه لتشفير البيانات باستخدام امتداد تحديث() و أخير() طُرق. عادةً ما يتم تمثيل البيانات المشفرة كسلسلة سداسية عشرية أو مخزن مؤقت.

على سبيل المثال:

مقدار ثابت التشفير = يتطلب("تشفير");

// إنشاء مفتاح سري للتشفير وفك التشفير.
مقدار ثابت secretKey = crypto.randomBytes (32);

// إنشاء متجه تهيئة
مقدار ثابت iv = crypto.randomBytes (16);

// البيانات المراد تشفيرها
مقدار ثابت نص عادي = "هذه رسالة سرية";

// إنشاء كائن تشفير
مقدار ثابت التشفير = crypto.createCipheriv ("aes-256-cbc"، secretKey ، الرابع) ؛

// تشفير البيانات
يترك encryptedText = cipher.update (نص عادي ، "utf-8", "عرافة");

// إنهاء التشفير
encryptedText + = cipher.final ("عرافة");

وحدة التحكم.log (encryptedText) ؛

يوضح المثال أعلاه كيف يمكنك تشفير نص عادي باستخدام aes-256 في وضع CBC باستخدام وحدة التشفير. يقوم بإنشاء مفتاح سري وناقل تهيئة باستخدام crypto.randomBytes طريقة. ثم يقوم بإنشاء كائن مشفر باستخدام crypto.createCipheriv الطريقة ، ويقوم بتشفير الرسالة النصية العادية باستخدام ملحق تحديث و الشفرة النهائية طُرق.

والنتيجة هي سلسلة سداسية عشرية للرسالة المشفرة ، والتي يمكنك فك تشفيرها باستخدام نفس المفتاح السري و IV.

كيفية فك تشفير البيانات في Node.js باستخدام وحدة التشفير

يمكنك فك تشفير البيانات المشفرة باستخدام وحدات التشفير crypto.createDecipheriv () الطريقة ، والتي تأخذ خوارزمية فك التشفير والمفتاح السري وناقل التهيئة كمدخلات. تقوم الطريقة بإرجاع ملف فك ، والذي يمكنك استخدامه لفك تشفير البيانات باستخدام امتداد Decipher.update () و Decipher.final () طُرق.

على سبيل المثال:

// إنشاء كائن فك
مقدار ثابت فك التشفير = crypto.createDecipheriv ("aes-256-cbc"، secretKey ، الرابع) ؛

// فك تشفير البيانات
يترك decryptedText = decipher.update (encryptedText ، "عرافة", "utf-8");

// إنهاء فك التشفير
decryptedText + = decipher.final ("utf-8");

وحدة التحكم.log (decryptedText) ؛ // هذه رسالة سرية

يوضح المثال أعلاه كيف يمكنك فك تشفير البيانات المشفرة باستخدام نفس الخوارزمية والمفتاح السري وناقل التهيئة الذي قمت بتشفيره به.

يقوم بإنشاء كائن فك باستخدام crypto.createDecipheriv طريقة. ثم يقوم بفك تشفير البيانات باستخدام ملف فك الأسلوب ، الذي يأخذ البيانات وترميز الإدخال وترميز الإخراج كوسائط. أخيرًا ، ينهي عملية فك التشفير باستخدام ملف فك الشفرة طريقة. يضمن استدعاء هذه الطريقة إمكانية استخدام كائن فك التشفير لفترة أطول لفك تشفير البيانات. والنتيجة هي سلسلة نصية عادية.

التشفير وفك التشفير أمران أساسيان لحماية البيانات الحساسة والحفاظ على سريتها. لديهم العديد من التطبيقات الواقعية في التجارة الإلكترونية والخدمات المصرفية عبر الإنترنت وتخزين البيانات والمزيد.

تطبيقات أخرى لوحدة التشفير Node.js

بصرف النظر عن التجزئة ، وإنشاء بيانات عشوائية آمنة مشفرة ، والتشفير وفك التشفير ، يمكنك أيضًا استخدام وحدة التشفير Node.js للتوقيع والتحقق من التواقيع الرقمية ، مما يساعد في التحقق من أصالة وسلامة الرقمية وثائق. بالإضافة إلى ذلك ، يمكنك استخدام وحدة التشفير لتأمين التدفقات لنقل البيانات لمنع العبث بالبيانات والتنصت أثناء النقل.