Java Cryptography (ক্রিপ্টোগ্রাফি) হল এমন একটি প্রযুক্তি যা ডেটা সুরক্ষা এবং এনক্রিপশন/ডিক্রিপশন প্রক্রিয়ায় ব্যবহৃত হয়। Java Cryptography API (JCAPI) একটি শক্তিশালী লাইব্রেরি, যা আপনাকে তথ্য সুরক্ষা, এনক্রিপশন, হ্যাশিং, এবং ডিজিটাল স্বাক্ষরের জন্য বিভিন্ন সুবিধা প্রদান করে।
এখানে আমরা দেখব কিভাবে IntelliJ IDEA অথবা Eclipse তে Java Cryptography প্রজেক্ট তৈরি করতে হয় এবং এর সাথে একটি সাধারণ ক্রিপ্টোগ্রাফিক প্রোগ্রাম (যেমন, AES Encryption বা RSA Encryption) তৈরি করা হয়।
1. IntelliJ IDEA তে Java Cryptography প্রজেক্ট তৈরি করা
Step 1: নতুন প্রজেক্ট তৈরি করা
- IntelliJ IDEA খুলুন এবং File > New > Project নির্বাচন করুন।
- প্রজেক্ট টাইপ হিসেবে Java নির্বাচন করুন।
- প্রজেক্টের নাম দিন, যেমন JavaCryptographyExample।
- Project SDK সিলেক্ট করুন (যদি না থাকে তবে Java SDK ইনস্টল করুন)।
- Finish ক্লিক করুন।
Step 2: Dependencies এবং Libraries
Java Cryptography API সাধারণত Java Development Kit (JDK) এর সাথে আসে, তাই বিশেষ কোনো বাইরের লাইব্রেরি (যেমন BouncyCastle) ব্যবহারের প্রয়োজন হবে না যদি আপনি সাধারণ এনক্রিপশন বা ডিক্রিপশন অপারেশন করতে চান। তবে যদি আপনার ক্রিপ্টোগ্রাফি আরও উন্নত করতে হয় (যেমন RSA, AES ইত্যাদি) বা উন্নত ফিচার ব্যবহার করতে হয়, তবে আপনি বাইরের লাইব্রেরি ব্যবহার করতে পারেন।
এখন, pom.xml ফাইলে যদি Maven ব্যবহার করছেন, বাইরের লাইব্রেরি যুক্ত করতে পারেন, যেমন:
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.70</version>
</dependency>
Step 3: ক্রিপ্টোগ্রাফি প্রোগ্রাম লেখা
এখন একটি সিম্পল এনক্রিপশন ডিক্রিপশন প্রোগ্রাম লিখুন। এখানে AES Encryption এর উদাহরণ দেওয়া হল।
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
public class CryptographyExample {
public static void main(String[] args) throws Exception {
String originalText = "Hello, Java Cryptography!";
// AES Encryption
SecretKey secretKey = generateSecretKey();
String encryptedText = encrypt(originalText, secretKey);
System.out.println("Encrypted Text: " + encryptedText);
// AES Decryption
String decryptedText = decrypt(encryptedText, secretKey);
System.out.println("Decrypted Text: " + decryptedText);
}
// Method to generate a secret AES key
public static SecretKey generateSecretKey() throws Exception {
KeyGenerator keyGen = KeyGenerator.getInstance("AES");
keyGen.init(128); // AES key size
return keyGen.generateKey();
}
// Method to encrypt the text
public static String encrypt(String text, SecretKey secretKey) throws Exception {
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encryptedBytes = cipher.doFinal(text.getBytes());
return Base64.getEncoder().encodeToString(encryptedBytes);
}
// Method to decrypt the text
public static String decrypt(String encryptedText, SecretKey secretKey) throws Exception {
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] decodedBytes = Base64.getDecoder().decode(encryptedText);
byte[] decryptedBytes = cipher.doFinal(decodedBytes);
return new String(decryptedBytes);
}
}
এখানে AES Encryption ব্যবহার করা হয়েছে। প্রথমে generateSecretKey() মেথডের মাধ্যমে একটি সিক্রেট কী তৈরি করা হয় এবং তারপর সেই কী ব্যবহার করে encrypt() এবং decrypt() মেথডে ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করা হয়।
Step 4: প্রোগ্রাম রান করা
আপনি এখন এই প্রোগ্রামটি চালাতে পারেন। IntelliJ IDEA তে Run ক্লিক করুন এবং আউটপুট দেখতে পারবেন:
Encrypted Text: <encrypted base64 string>
Decrypted Text: Hello, Java Cryptography!
2. Eclipse তে Java Cryptography প্রজেক্ট তৈরি করা
Step 1: নতুন প্রজেক্ট তৈরি করা
- Eclipse খুলুন এবং File > New > Java Project নির্বাচন করুন।
- প্রজেক্টের নাম দিন, যেমন JavaCryptographyExample এবং Finish ক্লিক করুন।
Step 2: Libraries যুক্ত করা
Java Cryptography API সাধারণত JDK এর সাথে আসে, তবে আপনি যদি বাইরের লাইব্রেরি ব্যবহার করতে চান (যেমন BouncyCastle), তাহলে pom.xml ফাইলে লাইব্রেরি যুক্ত করুন বা External JARs ব্যবহার করতে পারেন।
Step 3: ক্রিপ্টোগ্রাফি প্রোগ্রাম লেখা
Eclipse-এ আপনি একইভাবে উপরের মত একটি AES এনক্রিপশন/ডিক্রিপশন প্রোগ্রাম তৈরি করতে পারেন। Eclipse তে src ফোল্ডারে নতুন Java Class তৈরি করুন এবং উপরের কোড লিখুন।
Step 4: প্রোগ্রাম রান করা
এখন Eclipse তে Run ক্লিক করুন এবং আউটপুট দেখুন।
এখন আপনি IntelliJ IDEA বা Eclipse তে Java Cryptography প্রজেক্ট তৈরি করে AES Encryption বা অন্য ক্রিপ্টোগ্রাফিক অপারেশন করতে পারবেন। এই প্রক্রিয়ায়:
- আপনি প্রথমে Java প্রজেক্ট তৈরি করবেন।
- প্রয়োজনীয় লাইব্রেরি যুক্ত করবেন (যদি বাইরের লাইব্রেরি ব্যবহারের প্রয়োজন হয়)।
- ক্রিপ্টোগ্রাফিক কোড লিখে এনক্রিপশন এবং ডিক্রিপশন করবেন।
এটি আপনার Java অ্যাপ্লিকেশনে ডেটা সুরক্ষা, এনক্রিপশন এবং অন্যান্য ক্রিপ্টোগ্রাফিক কার্যক্রম পরিচালনার জন্য একটি শক্তিশালী উপায়।
Read more