يتم تنفيذ تشفير Java المتماثل باستخدام خوارزميات DES/3DES/AES.
هناك جملتان تقولان هذا:
1) الخوارزميات وهياكل البيانات هي جزء مهم من البرمجة. إذا فقدت الخوارزميات وهياكل البيانات ، فسوف تفقد كل شيء.
2) البرمجة هي الخوارزميات وهياكل البيانات ، والخوارزميات وهياكل البيانات هي روح البرمجة.
لاحظ أن هذا ليس ما قلته ، فقد تم تلخيصه من قبل عدد لا يحصى من المبرمجين. إنه واقعي للغاية وبصيرة. إذا كنت ترغب في التطور بشكل مستمر لفترة طويلة ، فلا يزال من الضروري دراسة المزيد من الخوارزميات. سأخبرك اليوم عن خوارزميات التشفير المتماثل في خوارزميات التشفير ، وهنا سأعلمك برمجة واستخدام خوارزميات التشفير المتماثل. ويشمل ثلاث خوارزميات تشفير متماثلة: DES ، 3DES و AES ، وهي مليئة بالمعلومات العملية.
1. خوارزمية كلمة المرور المتماثلة
خوارزمية التشفير المتماثلة هي خوارزمية التشفير الأكثر استخدامًا والأكثر استخدامًا اليوم. لا يتم استخدامه فقط في صناعة البرمجيات ، ولكنه شائع أيضًا في صناعة الأجهزة. ستعطي جميع أنواع البنى التحتية الأولوية لخوارزميات التشفير المتماثلة كلما كانت تتضمن احتياجات أمنية.
مفتاح التشفير ومفتاح فك التشفير لخوارزمية التشفير المتماثل هي نفسها. بالنسبة لمعظم خوارزميات التشفير المتماثلة ، ترتبط عملية التشفير وفك التشفير عكسيا.
(1) تشفير وفك تشفير نموذج الاتصال
(2) الميزات: خوارزمية مفتوحة ، حجم حساب صغير ، سرعة التشفير السريع ، كفاءة تشفير عالية
(3) الضعف: يستخدم الطرفان نفس المفتاح ، ولا يضمن الأمن
هناك نوعان من كلمات المرور المتماثلة: دفق كلمة المرور وكلمة مرور الحزمة ، ولكن الآن يتم استخدام كلمة مرور الكتلة بشكل شائع:
(4) حظر وضع عمل كلمة المرور
1) ECB: Cipherbook الإلكتروني (الأكثر شيوعًا ، كل تشفير يولد حزم نص مشفرة مستقلة ولن يؤثر على حزم النص المشفر الأخرى ، أي أن نفس النص العادي يتم إنشاءه بعد التشفير)
2) CBC: رابط النص المشفر (شائع الاستخدام. قبل تشفير النص العادي ، تحتاج إلى إجراء عملية XOR مع النص المشفر السابق ، أي يتم إنشاء أنواع مختلفة من التشفير بعد تشفير النص العادي نفسه)
بالإضافة إلى هذين أوضاع العمل شائعة الاستخدام ، هناك:
3) CFB: ملاحظات كلمة المرور
4) OFB: ردود الفعل الإخراج
5) CTR: عداد
يتم تطبيق أوضاع العمل الخمسة هذه بشكل أساسي بواسطة الخوارزميات في التشفير عند إجراء حسابات الاشتقاق.
6. كيفية ملء كلمات المرور كتلة
1) nopadding: لا ملء
2) PKCS5Padding:
3) ISO10126Padding:
7. كلمات مرور متماثلة شائعة الاستخدام:
1) DES (معيار تشفير البيانات ، معيار تشفير البيانات)
2) 3DES (Triple des ، Desede ، Triple DES Encryption خوارزمية)
3) AES (معيار التشفير المتقدم ، معيار تشفير البيانات المتقدم ، يمكن لخوارزمية AES مقاومة خوارزميات الهجوم بشكل فعال ضد DES)
دعنا أولاً نلقي نظرة على مقارنة بسيطة لهذه الخوارزميات الثلاث:
| خوارزمية | طول المفتاح | طول المفتاح الافتراضي | وضع العمل | طريقة ملء |
|---|---|---|---|---|
| des | 56 | 56 | ECB ، CBC ، PCBC ، CTR ، CTS ، CFB ، CFB8-CFB128 ، OFB ، OFB8-OFB128 | Nopadding ، PKCS5Padding ، ISO10126Padding |
| 3des | 112 ، 168 | 168 | ECB ، CBC ، PCBC ، CTR ، CTS ، CFB ، CFB8-CFB128 ، OFB ، OFB8-OFB128 | Nopadding ، PKCS5Padding ، ISO10126Padding |
| AES | 128 ، 192 ، 256 | 128 | ECB ، CBC ، PCBC ، CTR ، CTS ، CFB ، CFB8-CFB128 ، OFB ، OFB8-OFB128 | Nopadding ، PKCS5Padding ، ISO10126Padding |
دعونا نرى كيفية استخدام ثلاث خوارزميات من DES/3DES/AES لتنفيذ التشفير المتماثل:
2. des خوارزمية
1.des: معيار تشفير البيانات ، خوارزمية نموذجية في مجال خوارزميات التشفير المتماثل
2. الميزات: المفتاح قصير (56 بت) ، دورة حياة قصيرة (تجنب التكسير)
3. تنفيذ جافا
1) توليد مفتاح
keygenerator keygen = keygenerator.getInstance ("des") ؛ // مفتاح مولد keygen.init (56)2) التشفير
SecretKey secretKey = new secretKeySpec (مفتاح ، "des") ؛ // استرداد المشفر المشفر = cipher.getinstance ("des") ؛ cipher.dofinal (البيانات) ؛ // تشفير البيانات3) فك التشفير
SecretKey secretKey = new secretkeyspec (مفتاح ، "des") ؛ // استرداد المشفر المشفر = cipher.getinstance ("des") ؛ cipher.dofinal (البيانات) ؛ // فك تشفير البياناتيمكننا أن نجد أننا وضعنا فقط أوضاع مختلفة للتشفير وفك التشفير.
3.3des خوارزمية
1.3des: قم بزيادة طول المفتاح إلى 112 أو 168 بت ، وتحسين الأمان عن طريق زيادة عدد التكرارات.
2. العيوب: سرعة المعالجة البطيئة ، وقت حساب المفتاح الطويل ، وكفاءة تشفير منخفضة
3. تنفيذ جافا
1) توليد مفتاح
keygenerator keygen = keygenerator.getInstance ("desede") ؛ // key generator keygen.init (168) ؛ // يمكن تحديد طول المفتاح على أنه 112 أو 168 ، والافتراضي هو 168. SecretKey SecretKey = keygen.generateKey () ؛ // إنشاء مفتاح البايت [] key = secretkey.getencoded () ؛ // مفتاح بايت صفيف2) تشفير 3DES
secretkey secretKey = new secretkeyspec (مفتاح ، "desede") ؛ // استرداد المشفر المشفر = cipher.getinstance ("desede") ؛ cipher.dofinal (البيانات) ؛ // تشفير البيانات3) 3des فك التشفير
SecretKey SecretKey = New SecretKeySpec (مفتاح ، "DeseDe") ؛ // استرداد المشفرات المشفرة = cipher.getinstance ("DeseDe") ؛ // cipher يكمل التشفير أو فك تشفير الفئة العاملة = cipher.init (cipher.decrypt_mode) ؛ cipher.dofinal (البيانات) ؛ // فك تشفير البيانات4. خوارزمية AES (موصى بها)
1.AES: معيار تشفير البيانات المتقدم ، قادر على مقاومة جميع الهجمات المعروفة بشكل فعال ضد خوارزميات DES
2. الميزات: وقت إنشاء مفتاح قصير ، حساسية جيدة ، متطلبات ذاكرة منخفضة ، وأمان عالي
3. تنفيذ جافا
1) توليد مفتاح
keygenerator keygen = keygenerator.getInstance ("aes") ؛ // key generator keygen.init (128) ؛ // الافتراضي 128 ، بعد الحصول على أي أذونات سياسية ، يمكن أن يكون 192 أو 256Secretkey secretkey = keygen.generatekey () ؛ // إنشاء مفتاح البايت [] key = secretkey.getencoded () ؛ // مفتاح بايت صفيف2) تشفير AES
SecretKey secretKey = new secretKeySpec (مفتاح ، "AES") ؛ // استرداد مفتاح Cipher Cipher = cipher.getinstance ("AES") ؛ cipher.dofinal (البيانات) ؛ // تشفير البيانات3) AES Decryption
SecretKey secretKey = New SecretKeySpec (مفتاح ، "AES") ؛ // استرداد المشفر المشفر = cipher.getinstance ("AES") ؛ // cipher يكمل التشفير أو فك تشفير الفئة العاملة = cipher.init (cipher.decrypt_mode ، // تهيئة cipher ، decherbhy [] cipher. cipher.dofinal (البيانات) ؛ // فك تشفير البياناتللراحة ، لقد كتبت فئة الأدوات لخوارزميات DES/3DES/AES.
العنوان: http://xiazai.vevb.com/201701/yuanma/Android-Utilslibrary-master(vevb.com).rar (Addting des/3Des/AES Class).
في هذه المرحلة ، يتم إجراء جميع خوارزميات DES/3DES/AES لتنفيذ التشفير المتماثل.
شكرا لك على القراءة ، آمل أن تساعدك. شكرا لك على دعمك لهذا الموقع!