Java Technologies উদাহরণ সহ Cryptographic Operations গাইড ও নোট

280

Java Time Package এবং Cryptographic Operations এর মধ্যে সরাসরি সম্পর্ক না থাকলেও, Java Cryptography API (যেমন javax.crypto প্যাকেজ) এবং java.security প্যাকেজের সাথে java.time প্যাকেজটি মিলিয়ে আপনি Cryptographic Operations (যেমন, Digital Signatures, Encryption, Decryption, Hashing) করতে পারেন। এসব অপারেশনের জন্য সময়ে নির্ভর timestamping, secure time synchronization এবং time-based operations ব্যবহার করা হয়। তাই এখানে আমরা Java Time API এবং Java Cryptography API ব্যবহার করে কিছু সাধারণ cryptographic operations এর উদাহরণ দেখাবো।

Cryptographic Operations with Java (Examples):

1. Digital Signature using java.security

ডিজিটাল স্বাক্ষর (Digital Signature) ব্যবহার করে আপনি একটি বার্তা বা ডেটার অখণ্ডতা এবং সত্যতা নিশ্চিত করতে পারেন। ডিজিটাল সাইনেচারের জন্য KeyPairGenerator, Signature এবং PrivateKey এবং PublicKey ব্যবহার করা হয়।

Example: Digital Signature Generation and Verification

import java.security.*;
import java.util.Base64;

public class DigitalSignatureExample {
    public static void main(String[] args) {
        try {
            // Step 1: Key Pair Generation
            KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
            keyPairGenerator.initialize(2048); // Using RSA with 2048-bit key length
            KeyPair keyPair = keyPairGenerator.generateKeyPair();
            
            // Step 2: Signing the data
            Signature signature = Signature.getInstance("SHA256withRSA");
            signature.initSign(keyPair.getPrivate());
            String data = "This is a confidential message.";
            signature.update(data.getBytes());
            byte[] digitalSignature = signature.sign();
            
            System.out.println("Digital Signature: " + Base64.getEncoder().encodeToString(digitalSignature));
            
            // Step 3: Verifying the signature
            signature.initVerify(keyPair.getPublic());
            signature.update(data.getBytes());
            boolean isVerified = signature.verify(digitalSignature);
            
            System.out.println("Signature Verified: " + isVerified);
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Explanation:

  • KeyPairGenerator: ব্যবহারকারীর জন্য একটি পাবলিক এবং প্রাইভেট কী জেনারেট করে।
  • Signature: একটি ডিজিটাল সিগনেচার তৈরি এবং যাচাই করার জন্য ব্যবহৃত হয়।
  • SHA256withRSA: এই এলগরিদমটি SHA-256 হ্যাশিং ব্যবহার করে RSA ক্রিপ্টোগ্রাফি ভিত্তিক ডিজিটাল সাইনেচার তৈরি করে।

Output:

Digital Signature: [encoded signature]
Signature Verified: true

2. AES Encryption and Decryption

AES (Advanced Encryption Standard) একটি সিমেট্রিক ক্রিপ্টোগ্রাফি এলগরিদম যা javax.crypto প্যাকেজের মাধ্যমে বাস্তবায়িত হয়। এই উদাহরণে, আমরা AES ব্যবহার করে একটি স্ট্রিং এনক্রিপ্ট এবং ডিক্রিপ্ট করব।

Example: AES Encryption and Decryption

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import java.util.Base64;

public class AESEncryptionExample {
    public static void main(String[] args) {
        try {
            // Step 1: Generate AES Key
            KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
            keyGenerator.init(128); // Using 128-bit AES key
            SecretKey secretKey = keyGenerator.generateKey();
            
            // Step 2: Encrypt the data
            Cipher cipher = Cipher.getInstance("AES");
            cipher.init(Cipher.ENCRYPT_MODE, secretKey);
            String data = "This is a secret message.";
            byte[] encryptedData = cipher.doFinal(data.getBytes());
            String encryptedText = Base64.getEncoder().encodeToString(encryptedData);
            System.out.println("Encrypted Text: " + encryptedText);
            
            // Step 3: Decrypt the data
            cipher.init(Cipher.DECRYPT_MODE, secretKey);
            byte[] decryptedData = cipher.doFinal(Base64.getDecoder().decode(encryptedText));
            String decryptedText = new String(decryptedData);
            System.out.println("Decrypted Text: " + decryptedText);
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Explanation:

  • KeyGenerator: AES কিপেয়ার জেনারেট করতে ব্যবহৃত হয়।
  • Cipher: এনক্রিপশন এবং ডিক্রিপশন অপারেশনগুলো করতে ব্যবহৃত হয়।
  • Base64: এনক্রিপ্ট করা ডেটা প্রিন্ট করার জন্য Base64 এনকোডিং ব্যবহার করা হয়েছে।

Output:

Encrypted Text: [encoded encrypted message]
Decrypted Text: This is a secret message.

3. Hashing with SHA-256

SHA-256 (Secure Hash Algorithm) একটি একমুখী হ্যাশিং এলগরিদম, যা কোনো ডেটার নির্দিষ্ট আউটপুট হ্যাশ কোড তৈরি করে। এখানে, আমরা একটি স্ট্রিংয়ের SHA-256 হ্যাশ তৈরি করব।

Example: SHA-256 Hashing

import java.security.MessageDigest;
import java.util.Base64;

public class SHA256HashingExample {
    public static void main(String[] args) {
        try {
            // Step 1: Get the MessageDigest instance for SHA-256
            MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
            
            // Step 2: Update the message with data to be hashed
            String data = "This is a message to hash.";
            messageDigest.update(data.getBytes());
            
            // Step 3: Perform the hashing and get the byte array
            byte[] hashedBytes = messageDigest.digest();
            
            // Step 4: Convert the byte array to a string
            String hashedString = Base64.getEncoder().encodeToString(hashedBytes);
            System.out.println("SHA-256 Hash: " + hashedString);
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Explanation:

  • MessageDigest: SHA-256 হ্যাশিং এলগরিদম ব্যবহার করার জন্য MessageDigest ক্লাস ব্যবহার করা হয়।
  • Base64: হ্যাশ ফলাফলটি প্রিন্ট করার জন্য Base64 এনকোডিং করা হয়েছে।

Output:

SHA-256 Hash: [hashed string]

  • Java Cryptography API এবং Java Time API একত্রে timestamping, encryption, decryption, hashing, এবং digital signatures সহ cryptographic operations করার জন্য একটি শক্তিশালী প্যাকেজ তৈরি করে।
  • উদাহরণস্বরূপ, RSA Digital Signature, AES Encryption, এবং SHA-256 Hashing Java তে সাধারণ ক্রিপ্টোগ্রাফিক অপারেশন হিসেবে ব্যবহৃত হয়।
  • java.security এবং javax.crypto প্যাকেজগুলি নিরাপত্তা এবং গোপনীয়তা নিশ্চিত করতে শক্তিশালী ক্রিপ্টোগ্রাফিক ফিচার সরবরাহ করে, যা বিভিন্ন সিকিউরিটি-ভিত্তিক অ্যাপ্লিকেশন তৈরির জন্য অপরিহার্য।
Content added By
Promotion

Are you sure to start over?

Loading...