التشفير في جافا. فئة التوقيع

مرحبا يا هبر! أقدم إليكم ترجمة المقال الخامس "توقيع جافا" لجاكوب جينكوف من سلسلة من المقالات للمبتدئين الذين يرغبون في تعلم أساسيات التشفير في جافا.


جدول المحتويات:


  1. تشفير جافا
  2. تشفير جافا
  3. MessageDigest
  4. ماك
  5. توقيع
  6. KeyPair
  7. KeyGenerator
  8. KeyPairGenerator
  9. تخزين المفاتيح
  10. Keytool
  11. شهادة
  12. CertificateFactory
  13. CertPath

توقيع جافا


فئة التوقيع ( java.security.Signature ) تنشئ توقيعًا رقميًا للبيانات الثنائية. التوقيع الرقمي عبارة عن ملخص للرسائل مشفر بالمفتاح الخاص لزوج مفاتيح خاص / عام. يمكن لأي شخص يملك المفتاح العمومي التحقق من التوقيع الرقمي.


إنشاء مثيل التوقيع


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


Signature signature = Signature.getInstance("SHA256WithDSA"); 

تحدد معلمة السلسلة التي تم تمريرها إلى أسلوب getInstance () خوارزمية تشفير التوقيع الرقمي المستخدمة.


تهيئة مثيل التوقيع


بعد إنشاء مثيل التوقيع ، تحتاج إلى تهيئته قبل البدء في استخدامه. تتم تهيئة مثيل التوقيع عن طريق استدعاء أسلوب init () الخاص به . مثال على تهيئة مثيل توقيع Java:


 SecureRandom secureRandom = new SecureRandom(); KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("DSA"); KeyPair keyPair = keyPairGenerator.generateKeyPair(); signature.initSign(keyPair.getPrivate(), secureRandom); 

كما ترى ، تتم تهيئة مثيل التوقيع باستخدام المفتاح الخاص لزوج المفتاح السري / العام ومثيل SecureRandom.


إنشاء التوقيع الرقمي


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


 byte[] data = "abcdefghijklmnopqrstuvxyz".getBytes("UTF-8"); signature.update(data); byte[] digitalSignature = signature.sign(); 

التحقق من التوقيع الرقمي


إذا كنت ترغب في التحقق من توقيع رقمي أنشأه شخص آخر ، فيجب عليك تهيئة مثيل التوقيع في وضع التحقق (بدلاً من وضع التوقيع). هذه هي الطريقة التي يبدو بها تهيئة مثيل التوقيع في وضع التحقق من الصحة:


 Signature signature = Signature.getInstance("SHA256WithDSA"); signature.initVerify(keyPair.getPublic()); 

لاحظ أنه يتم الآن تهيئة مثيل التوقيع في وضع التحقق ، ويمر بالمفتاح العام لزوج المفاتيح كمعلمة. بعد التهيئة في وضع التحقق ، يمكنك استخدام مثيل التوقيع للتحقق من التوقيع الرقمي:


 byte[] data2 = "abcdefghijklmnopqrstuvxyz".getBytes("UTF-8"); signature2.update(data2); boolean verified = signature2.verify(digitalSignature); 

Source: https://habr.com/ru/post/ar445330/


All Articles