مقالات وتدوينات
(0)

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

762 قراءة
0 تعليق
alt
التصنيف مقالات وتدوينات
وقت النشر
2022/07/26
الردود
0

السلام عليكم ورحمة الله وبركاته 


 Node.js هي بيئة تشغيل مفتوحة المصدر ومتعددة الأنظمة الأساسية مبنية على محرك جافا سكريبت V8 من Chrome لتنفيذ كود JavaScript خارج المتصفح ويدعم Node.js عددًا كبيرًا من وحدات الطرف الثالث التي تساعد في أداء العديد من أنواع المهام المختلفة ووحدة التشفير هي إحدى وحدات الطرف الثالث التي تساعد في تشفير أو فك تشفير أو تجزئة أي بيانات والتي نريد تأمينها من خارج العالم حيث تتمثل الوظيفة الرئيسية لهذه الوحدة في تحويل النص العادي أو البيانات إلى تنسيق مشفر (مجزأ ، نص مشفر) وهو غير قابل للقراءة ويتم استخدام وحدات التشفير و bycrypto لجهات خارجية لحماية البيانات الحساسة ويتمثل الاختلاف الرئيسي بين وحدة التشفير والوحدة المشفرة في أن وحدة التشفير تقوم بإجراء تجزئة قوية مقارنة بوحدة التشفير لذلك إذا أردنا إجراء التجزئة القوية فسنفضل استخدام وحدة التشفير وإلا فإننا نستخدم وحدة التشفير. 

النص العادي: هو أي شيء نكتبه أو نكتبه ويمكن أن يفهمه الإنسان يسمى نصًا عاديًا ويمكن أن يحتوي على أي حرف (a-zA-Z0-9! ، @ ، #….) وعلى سبيل المثال كلمة المرور الخاصة بنا. 

النص المشفر: sdfasc1asT67W2sqWwsdfsadf هل أنت قادر على فهم هذه الكلمة؟ بالطبع لا ، فقد كان نصًا مشفرًا وهو نصًا غير قابل للقراءة وغير مفهوم ويتم إنشاؤه عن طريق تمرير نص عادي عبر خوارزمية. 


آلية التشفير: 

التجزئة: هي آلية لتحويل نص عادي إلى نص مشفر وهي وظيفة تشفير أحادية الاتجاه أي لا يمكننا تحويل نص مشفر إلى نص عادي ويتم استخدامه على نطاق واسع في أنظمة المصادقة لتجنب تخزين كلمات مرور النص العادي في قواعد البيانات ولكنه يستخدم أيضًا للتحقق من صحة الملفات والوثائق وأنواع البيانات الأخرى، ملخص الرسائل 5 (MD5) و RSA و SHA وغيرها هي خوارزميات مستخدمة على نطاق واسع للتجزئة. 

التشفير وفك التشفير: تأخذ خوارزميات التشفير المدخلات والمفتاح السري وتولد إخراجًا عشوائيًا يسمى النص المشفر وهذه العملية قابلة للعكس وفك التشفير هو عكس التشفير حيث تأخذ هذه الخوارزمية نفس المفتاح السري والنص المشفر وتقوم بإرجاع النص العادي الأصلي ويستخدم هذا على نطاق واسع في نظام المراسلة مثل WhatsApp غيرها،  AES إحدى الخوارزميات المستخدمة على نطاق واسع للتشفير وفك التشفير. 


ميزات Crypto في Node.js:    

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


لتثبيت النموذج: 

npm install crypto-js --save

هيكل المشروع:


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


استخدام وحدة التشفير لتجزئة البيانات:

// Importing module

var SHA256 = require("crypto-js/sha256");

 var plaindata = "GeeksForGeeks"

var hasheddata = SHA256(plainText).toString()

console.log(hasheddata)

قم بتشغيل ملف index.js باستخدام الأمر أدناه:

node index.js

المخرجات: 


استخدام وحدة التشفير لتشفير البيانات وفك تشفيرها:

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


// Importing the crypto module
const crypto=require("crypto-js")

var data = "This is the data that need to be encrypted"

var key = "password@111"

// Encrypte the data
var encrypted = crypto.AES.encrypt(data, key).toString();
console.log("Encrypted data")

// Printing the encrypted data
console.log(encrypted)
console.log("Decrypted data")

// Decrypting the data
var decrypted = crypto.AES.decrypt(encrypted, key)
.toString(crypto.enc.Utf8)
console.log(decrypted)

قم بتشغيل ملف index.js باستخدام الأمر أدناه:

node index.js

المخرجات: 

المصدر هنا

التعليقات (0)

قم بتسجيل الدخول لتتمكن من إضافة رد