تنقسم خوارزميات التشفير الشائعة بشكل أساسي إلى هذه الفئات: 1: خوارزمية التجزئة الخطية ، 2: خوارزمية التشفير المتماثل ، 3. خوارزمية التشفير غير المتماثلة (السجل)
خوارزمية التجزئة الخطية (خوارزمية التوقيع): MD5 ، SHA1 ، HMAC
على سبيل المثال ، MD5: خوارزمية هجمات الرسائل 5 (خوارزمية هجمات المعلومات 5) ، تستخدم لضمان نقل المعلومات الكامل والمتسق.
سمات:
1. الانضغاط: يتم إصلاح طول قيمة MD5 المحسوب لبيانات من أي طول.
2. من السهل حساب: من السهل حساب قيمة MD5 من البيانات الأصلية.
3. مقاومة التعديل: قم بإجراء أي تغييرات على البيانات الأصلية ، حتى لو تم تعديل بايت واحد فقط ، تختلف قيم MD5 الناتجة تمامًا.
4.
تتمثل وظيفة MD5 في السماح "بالضغط" على المعلومات ذات السعة الكبيرة في تنسيق سري قبل توقيع مفتاح خاص مع برنامج توقيع رقمي (أي ، تحويل سلسلة بايت من أي طول إلى سلسلة سداسية من الطول معين)
خوارزمية التشفير المتماثل: AES ، DES ، 3DES
على سبيل المثال ، يُعرف AES: (معيار التشفير المتقدم) أيضًا باسم طريقة تشفير Rijndael في التشفير ، وهو معيار تشفير الكتلة الذي اعتمدته الحكومة الفيدرالية الأمريكية. يتم استخدام هذا المعيار لاستبدال DES الأصلي ، وقد تم تحليله بواسطة أطراف متعددة ويستخدم على نطاق واسع في جميع أنحاء العالم.
خوارزمية التشفير غير المتماثلة: RSA ، DSA ، ECC
على سبيل المثال ، RSA: نظام تشفير مفتاح RSA العمومي. ما يسمى نظام التشفير العام هو استخدام مفاتيح التشفير المختلفة ومفاتيح فك التشفير. إنه نظام تشفير أن "استخلاص مفاتيح فك التشفير من مفاتيح التشفير المعروفة أمر غير ممكن حسابيًا."
في نظام تشفير المفتاح العام ، يكون مفتاح التشفير (أي المفتاح العام) PK هو معلومات عامة ، في حين أن مفتاح فك التشفير (أي المفتاح السري) يجب أن يظل سريًا. خوارزمية التشفير E وخوارزمية فك التشفير D هي أيضًا عامة. على الرغم من أن مفتاح فك التشفير يتم تحديده بواسطة المفتاح العام PK ، لا يمكن حساب SK بناءً على PK.
وحدة التشفير في nodejs
تستخدم Node مكتبة OpenSSL لتنفيذ تقنية التشفير الخاصة بها ، لأن OpenSSL هي بالفعل خوارزمية تشفير تستخدم على نطاق واسع. ويشمل خوارزميات مثل MD5 أو SHA-1 التي يمكنك استخدامها في التطبيق الخاص بك.
يستخدم الكود التالي طريقة تنفيذ وحدة Crypto Module DES خوارزمية
/*** * Author Chenjianxiang * date 2016-07-07 */var crypto = require ('crypto') ؛ var key = '12345670' ؛ exports.des = {engorithm: {ecb: 'des-ecb' ، cbc: 'des-cbc' var iv = New Buffer (IV؟ IV: 0) ؛ var cipher = crypto.createcipheriv (this.algorithm.ecb ، key ، iv) ؛ cipher.setautopadding (true) // الافتراضي var var cipher = cipher.update (plaintext ، 'utf8' ، 'base64') ؛ cipher += cipher.final ('base64') ؛ إرجاع الشفرة } ، decrypt: function (encrypt_text ، iv) {var key = new buffer (key) ؛ var iv = New Buffer (IV؟ IV: 0) ؛ var decipher = crypto.createdEcipheriv (this.algorithm.ecb ، key ، iv) ؛ decipher.setautopadding (صواب) ؛ var txt = decipher.update (incrypt_text ، 'base64' ، 'utf8') ؛ txt += decipher.final ('utf8') ؛ إرجاع txt ؛ }} ؛باستخدام طريقة التشفير وفك التشفير
] cryptutil.des.decrypt (incrypt_text ، 0) ؛ console.log (encrypt_text) ؛ console.log (decrypt_text) ؛
نتيجة الإخراج:
i+qwosxqvbq18kvmx3ainomhbs3nt+v64s
/upload/image/201602120012.jpg
إن التنفيذ البسيط لـ Node.js des Encryption أعلاه هو كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.