البرمجة

تحويل وظيفة PHP إلى Node.js

التحويل من وظيفة PHP إلى وظيفة مماثلة في Node.js يتطلب فهماً لكل من لغة PHP ولغة JavaScript بالإضافة إلى مكتبات التشفير المتوفرة في كل منهما. في الحالة الحالية، الوظيفة المعطاة تقوم بتشفير بيانات باستخدام خوارزمية TripleDES. لنقم بتحويل هذه الوظيفة إلى Node.js.

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

إليك الوظيفة المحولة إلى Node.js:

javascript
const crypto = require('crypto'); function Encrypt(input, key_seed) { input = input.trim(); const block = 8; // TripleDES block size is 8 bytes const len = Buffer.byteLength(input); const padding = block - (len % block); input += String.fromCharCode(padding).repeat(padding); // Generate a 24 byte key from the md5 of the seed const key = crypto.createHash('md5').update(key_seed).digest().slice(0, 24); // Encrypt const cipher = crypto.createCipheriv('des-ede3', key, Buffer.alloc(0)); let encrypted_data = cipher.update(input, 'utf8', 'base64'); encrypted_data += cipher.final('base64'); return encrypted_data; } // Example usage const input = "Your input data"; const key_seed = "Your key seed"; const encrypted_data = Encrypt(input, key_seed); console.log(encrypted_data);

تم تعديل الوظيفة لتتوافق مع بيئة Node.js. تم استبدال استخدام مكتبة mcrypt بمكتبة crypto المدمجة في Node.js لتنفيذ عملية التشفير باستخدام TripleDES. كما تم تحديد حجم الكتلة (block size) مباشرة كقيمة ثابتة لأن حجم الكتلة في TripleDES هو 8 بايت.

عملية البدء في التشفير تمت بواسطة crypto.createCipheriv() مع استخدام “des-ede3” كخوارزمية. يتم إرجاع النص المشفر كنص Base64 مشفر. يمكنك استدعاء الوظيفة بتمرير البيانات المطلوبة والبذرة (seed) كما هو موضح في المثال.

المزيد من المعلومات

بالتأكيد، سنكمل المقال الذي يشرح كيفية تحويل الوظيفة من PHP إلى Node.js بشكل أكثر تفصيلًا وشمولًا.

الخطوة الأولى في تحويل الوظيفة هي فهم كيفية عمل الوظيفة الأصلية في PHP. الوظيفة تقوم بتشفير البيانات باستخدام TripleDES، وتقوم بإضافة حشوة (padding) لضمان توافق حجم البيانات مع حجم الكتلة. ثم، تقوم بتوليد مفتاح تشفير من معطى (seed)، وتشفير البيانات باستخدام هذا المفتاح، وأخيرًا تقوم بإعادة النص المشفر كنص Base64.

بعد فهم كيفية عمل الوظيفة الأصلية، نقوم بتحويلها إلى Node.js. في Node.js، نستخدم مكتبة crypto المدمجة لتنفيذ العمليات التشفيرية.

  1. تجهيز البيانات:
    في الوظيفة الأصلية، يتم إزالة الفراغات الزائدة من بداية ونهاية البيانات باستخدام trim() ومن ثم يتم إضافة حشوة (padding) لتوافق حجم الكتلة المطلوب. في النسخة المحولة، نستخدم String.fromCharCode(padding).repeat(padding) لإنشاء الحشوة بشكل متوافق مع تقنية TripleDES.

  2. توليد المفتاح:
    في الوظيفة الأصلية، يتم توليد المفتاح باستخدام MD5 من المعطى (seed) ومن ثم يتم استخدام القسم الأول من الناتج كمفتاح. في النسخة المحولة، نستخدم crypto.createHash('md5').update(key_seed).digest().slice(0, 24) لتوليد المفتاح بنفس الطريقة.

  3. عملية التشفير:
    في الوظيفة الأصلية، تستخدم mcrypt لتنفيذ عملية التشفير. في النسخة المحولة، نستخدم crypto.createCipheriv() مع استخدام “des-ede3” كخوارزمية لتنفيذ التشفير. يتم استخدام cipher.update() و cipher.final() للحصول على النص المشفر.

  4. إرجاع النتيجة:
    في الوظيفة الأصلية، يتم إرجاع النص المشفر كنص Base64. في النسخة المحولة، يتم إرجاع النص المشفر بشكل مماثل.

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

باستخدام هذه الخطوات، يمكنك بسهولة تحويل وظائف PHP إلى Node.js والاستفادة من مزايا كل منصة في تطوير تطبيقاتك.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر