जावा क्रिप्टोग्राफी - डेटा एन्क्रिप्ट करना

आप दिए गए डेटा को सिफर वर्ग के उपयोग से एन्क्रिप्ट कर सकते हैं javax.cryptoपैकेज। जावा का उपयोग करके दिए गए डेटा को एन्क्रिप्ट करने के लिए नीचे दिए गए चरणों का पालन करें।

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

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

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

//Creating KeyPair generator object
KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("DSA");

चरण 2: KeyPairGenerator ऑब्जेक्ट को प्रारंभ करें

KeyPairGenerator क्लास नाम की एक विधि प्रदान करता है initialize()इस विधि का उपयोग कुंजी युग्म जनरेटर को आरंभ करने के लिए किया जाता है। यह विधि मुख्य आकार का प्रतिनिधित्व करने वाले पूर्णांक मान को स्वीकार करती है।

KeyPairGenerator ऑब्जेक्ट को चरण का उपयोग करके पिछले चरण में बनाया गया प्रारंभ करें initialize() नीचे दिखाए अनुसार विधि।

//Initializing the KeyPairGenerator
keyPairGen.initialize(2048);

चरण 3: KeyPairGenerator उत्पन्न करें

आप उत्पन्न कर सकते हैं KeyPair का उपयोग करते हुए generateKeyPair() की विधि KeyPairGeneratorकक्षा। नीचे दिखाए गए अनुसार इस विधि का उपयोग करके मुख्य जोड़ी बनाएं।

//Generate the pair of keys
KeyPair pair = keyPairGen.generateKeyPair();

चरण 4: सार्वजनिक कुंजी प्राप्त करें

आप जनरेट की गई कुंजी प्राप्त कर सकते हैं KeyPair का उपयोग कर वस्तु getPublic() नीचे दिखाए अनुसार विधि।

इस विधि का उपयोग करके सार्वजनिक कुंजी प्राप्त करें जैसा कि नीचे दिखाया गया है।

//Getting the public key from the key pair
PublicKey publicKey = pair.getPublic();

चरण 5: एक सिफर ऑब्जेक्ट बनाएं

getInstance() उसकि विधि Cipher क्लास एक स्ट्रिंग चर को आवश्यक परिवर्तन का प्रतिनिधित्व करता है और एक सिफर ऑब्जेक्ट देता है जो दिए गए परिवर्तन को लागू करता है।

का उपयोग कर सिफर ऑब्जेक्ट बनाएँ getInstance() नीचे दिखाए अनुसार विधि।

//Creating a Cipher object
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");

चरण 6: सिफर ऑब्जेक्ट को प्रारंभ करें

init() की विधि Cipher क्लास दो मापदंडों को एक पूर्णांक पैरामीटर स्वीकार करता है जो ऑपरेशन मोड (एन्क्रिप्ट / डिक्रिप्ट) का प्रतिनिधित्व करता है और, एक कुंजी ऑब्जेक्ट जो सार्वजनिक कुंजी का प्रतिनिधित्व करता है।

का उपयोग करके Cypher वस्तु को आरम्भिक करें init() नीचे दिखाए अनुसार विधि।

//Initializing a Cipher object
cipher.init(Cipher.ENCRYPT_MODE, publicKey);

चरण 7: डेटा को सिफर ऑब्जेक्ट में जोड़ें

update() सिफर वर्ग की विधि डेटा को दर्शाने वाले बाइट सरणी को स्वीकार करती है और दिए गए डेटा के साथ वर्तमान ऑब्जेक्ट को अपडेट करती है।

डेटा को पास करके आरंभित सिफर ऑब्जेक्ट को अपडेट करें update() नीचे के रूप में बाइट सरणी के रूप में विधि।

//Adding data to the cipher
byte[] input = "Welcome to Tutorialspoint".getBytes();	  
cipher.update(input);

चरण 8: डेटा एन्क्रिप्ट करें

doFinal()सिफर वर्ग की विधि एन्क्रिप्शन ऑपरेशन को पूरा करती है। इसलिए, नीचे दिखाए गए अनुसार इस पद्धति का उपयोग करके एन्क्रिप्शन को समाप्त करें।

//Encrypting the data
byte[] cipherText = cipher.doFinal();

उदाहरण

निम्नलिखित जावा प्रोग्राम उपयोगकर्ता से पाठ को स्वीकार करता है, आरएसए एल्गोरिथ्म का उपयोग करके इसे एन्क्रिप्ट करता है और, दिए गए पाठ के एन्क्रिप्टेड प्रारूप को प्रिंट करता है।

import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.Signature;

import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;

public class CipherSample {
   public static void main(String args[]) throws Exception{
      //Creating a Signature object
      Signature sign = Signature.getInstance("SHA256withRSA");
      
      //Creating KeyPair generator object
      KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");
      
      //Initializing the key pair generator
      keyPairGen.initialize(2048);
      
      //Generating the pair of keys
      KeyPair pair = keyPairGen.generateKeyPair();      
	
      //Creating a Cipher object
      Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
        
      //Initializing a Cipher object
      cipher.init(Cipher.ENCRYPT_MODE, pair.getPublic());
	  
      //Adding data to the cipher
      byte[] input = "Welcome to Tutorialspoint".getBytes();	  
      cipher.update(input);
	  
      //encrypting the data
      byte[] cipherText = cipher.doFinal();	 
      System.out.println(new String(cipherText, "UTF8"));
   }
}

उत्पादन

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

Encrypted Text: 
 "???:]J_?]???;Xl??????*@??u???r??=T&???_?_??.??i?????(?$_f?zD??????ZGH??g???
g?E:_??bz^??f?~o???t?}??u=uzp\UI????Z??l[?G?3??Y?UAEfKT?f?O??N_?d__?????a_?15%?^?
'p?_?$,9"{??^??y??_?t???,?W?PCW??~??[?$??????e????f?Y-Zi__??_??w?_?&QT??`?`~?[?K_??_? ??