जावा क्रिप्टोग्राफी - KeyGenerator

जावा प्रदान करता है KeyGenerator इस वर्ग का उपयोग गुप्त कुंजियों को उत्पन्न करने के लिए किया जाता है और इस वर्ग की वस्तुएँ पुन: प्रयोज्य होती हैं।

KeyGenerator वर्ग का उपयोग करके चाबियाँ उत्पन्न करने के लिए नीचे दिए गए चरणों का पालन करें।

चरण 1: एक KeyGenerator ऑब्जेक्ट बनाएँ

KeyGenerator वर्ग प्रदान करता है getInstance() वह विधि जो आवश्यक कुंजी-जनरेटिंग एल्गोरिथ्म का प्रतिनिधित्व करने वाले स्ट्रिंग चर को स्वीकार करती है और एक KeyGenerator ऑब्जेक्ट देता है जो गुप्त कुंजी उत्पन्न करता है।

सृजन करना KeyGenerator का उपयोग कर वस्तु getInstance() नीचे दिखाए अनुसार विधि।

//Creating a KeyGenerator object
KeyGenerator keyGen = KeyGenerator.getInstance("DES");

चरण 2: सिक्योर रैंडम ऑब्जेक्ट बनाएं

SecureRandom की कक्षा java.Securityपैकेज एक मजबूत यादृच्छिक संख्या जनरेटर प्रदान करता है जिसका उपयोग जावा में यादृच्छिक संख्या उत्पन्न करने के लिए किया जाता है। नीचे दिखाए अनुसार इस वर्ग को त्वरित करें।

//Creating a SecureRandom object
SecureRandom secRandom = new SecureRandom();

चरण 3: प्रारंभ करें KeyGenerator

KeyGenerator क्लास नाम की एक विधि प्रदान करता है init() यह विधि सिक्योर रैंडम ऑब्जेक्ट को स्वीकार करती है और करंट को इनिशियलाइज़ करती है KeyGenerator

का उपयोग कर पिछले चरण में बनाए गए KeyGenerator ऑब्जेक्ट को प्रारंभ करें init() तरीका।

//Initializing the KeyGenerator
keyGen.init(secRandom);

उदाहरण

निम्नलिखित उदाहरण KeyGenerator वर्ग का उपयोग करके गुप्त कुंजी की प्रमुख पीढ़ी को प्रदर्शित करता है javax.crypto पैकेज।

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;

import java.security.Key;
import java.security.SecureRandom;

public class KeyGeneratorExample {
   public static void main(String args[]) throws Exception{
      //Creating a KeyGenerator object
      KeyGenerator keyGen = KeyGenerator.getInstance("DES");
      
      //Creating a SecureRandom object
      SecureRandom secRandom = new SecureRandom();
      
      //Initializing the KeyGenerator
      keyGen.init(secRandom);
      
      //Creating/Generating a key
      Key key = keyGen.generateKey();
      
      System.out.println(key);      
      Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");      
      cipher.init(cipher.ENCRYPT_MODE, key);      

      String msg = new String("Hi how are you");
      byte[] bytes = cipher.doFinal(msg.getBytes());      
      System.out.println(bytes);      
   }
}

उत्पादन

उपरोक्त कार्यक्रम निम्नलिखित आउटपुट उत्पन्न करता है -

com.sun.crypto.provider.DESKey@18629
[B@2ac1fdc4