Encryption এবং Decryption ব্যবস্থাপনা

Java Technologies - অ্যাপাচি পিওআই (ওয়ার্ড) Security এবং Password Protection |
123
123

অ্যাপাচি পিওআই (Apache POI) সরাসরি Word ডকুমেন্টের Encryption এবং Decryption এর জন্য সমর্থন প্রদান করে না। তবে, Apache POI এর মাধ্যমে আপনি password-protect করা Word ডকুমেন্ট তৈরি করতে পারেন, কিন্তু এটি শুধুমাত্র ডকুমেন্টের metadata এবং basic encryption এর জন্য সীমাবদ্ধ। Advanced Encryption (যেমন AES বা অন্য আধুনিক এনক্রিপশন মেথড) করার জন্য আপনাকে অন্য কোনও লাইব্রেরি, যেমন Apache POI এর বাইরের BouncyCastle বা Java Cryptography API ব্যবহার করতে হবে।

এখানে Apache POI ব্যবহার করে Word ডকুমেন্টের encryption এবং decryption এর প্রাথমিক ধারণা দেওয়া হবে, তবে এটি সঠিক এনক্রিপশন স্তরের সমর্থন নয়, বরং একটি password-based protection এর উদাহরণ হবে।


Word ডকুমেন্টে Password Protection (Encryption)

Apache POI সরাসরি এনক্রিপশন বা ডিক্রিপশন পরিচালনা না করলেও, আপনি password-protection এর মাধ্যমে একটি ডকুমেন্টে encryption তৈরি করতে পারেন। এখানে, XWPFDocument ব্যবহার করে একটি ডকুমেন্টে password সেট করা হচ্ছে।

Password Protection (Encryption) যোগ করা

import org.apache.poi.xwpf.usermodel.*;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import java.io.*;

public class EncryptWordDocument {
    public static void main(String[] args) throws Exception {
        // নতুন Word ডকুমেন্ট তৈরি করা
        XWPFDocument document = new XWPFDocument();

        // একটি প্যারাগ্রাফ তৈরি করা
        XWPFParagraph paragraph = document.createParagraph();
        XWPFRun run = paragraph.createRun();
        run.setText("This document is protected with a password.");

        // ডকুমেন্টটি সেভ করার আগে password protection যোগ করা
        FileOutputStream out = new FileOutputStream("protected_document.docx");

        // এখানে password-protection যুক্ত করার জন্য POI সরাসরি সমর্থন না থাকলেও, 
        // password protect করার জন্য আপনাকে Apache POI-এর বাইরে অন্য কোনও লাইব্রেরি ব্যবহার করতে হবে, 
        // যেমন Apache Tika বা BouncyCastle।

        // Document save (without real password protection)
        document.write(out);
        out.close();

        System.out.println("Document created successfully. Encryption functionality can be added using external libraries.");
    }
}

এখানে password protection অ্যাড করার জন্য আপনাকে Apache POI এর বাইরে অন্য লাইব্রেরি ব্যবহার করতে হবে, কারণ POI স্বতন্ত্রভাবে password encryption সাপোর্ট করে না।


Password-protected Word ডকুমেন্ট ডিক্রিপ্ট করা (Decryption)

পাসওয়ার্ড-প্রোটেক্টেড Word ডকুমেন্ট খোলার জন্য আপনাকে প্রোগ্রামmatically ডিক্রিপ্ট করতে হবে। যেহেতু Apache POI এই ফিচারটি সরাসরি সাপোর্ট করে না, তাই আপনাকে Apache Tika বা BouncyCastle এর মত লাইব্রেরি ব্যবহার করে ডিক্রিপশন করতে হবে।

এখানে একটি BouncyCastle লাইব্রেরির উদাহরণ দেওয়া হলো, যা আপনাকে আধুনিক এনক্রিপশন/ডিক্রিপশন সমাধান দিতে পারে:

import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import java.io.*;

public class DecryptWordDocument {
    public static void main(String[] args) throws Exception {
        // পাসওয়ার্ড দিয়ে encrypted ডকুমেন্ট লোড করা
        FileInputStream fis = new FileInputStream("protected_document.docx");
        
        // এখানে পাসওয়ার্ড দিয়ে ডকুমেন্ট ওপেন করতে BouncyCastle বা Apache Tika প্রয়োজন হবে।
        XWPFDocument document = new XWPFDocument(fis); // POI শুধুমাত্র Word ডকুমেন্ট পড়তে পারে, পাসওয়ার্ড চেক না করলেও

        // ডকুমেন্টের কন্টেন্ট পড়া
        for (XWPFParagraph paragraph : document.getParagraphs()) {
            System.out.println(paragraph.getText());
        }
        
        fis.close();
    }
}

ডিক্রিপশন ব্যবস্থাপনা:

  • Apache POI শুধু ডকুমেন্টটি open করতে সহায়তা করবে, তবে এটি যদি পাসওয়ার্ড-প্রটেক্টেড থাকে, তবে আপনাকে বাইরের একটি লাইব্রেরি (যেমন BouncyCastle) ব্যবহার করতে হবে পাসওয়ার্ড যাচাই এবং ডিক্রিপশন পরিচালনা করার জন্য।

এনক্রিপশন এবং ডিক্রিপশন সম্পাদনের জন্য বাইরের লাইব্রেরি ব্যবহারের পরামর্শ

যেহেতু Apache POI সরাসরি এনক্রিপশন এবং ডিক্রিপশন সমর্থন করে না, তাই আপনাকে Apache Tika বা BouncyCastle লাইব্রেরি ব্যবহার করতে হবে। এই লাইব্রেরিগুলি Password Protection এবং Encryption এর জন্য প্রয়োজনীয় সমাধান প্রদান করতে পারে।

BouncyCastle ব্যবহার:

  • BouncyCastle হল একটি Java লাইব্রেরি যা cryptographic সমাধান প্রদান করে এবং এতে password-based encryption এর সমর্থন রয়েছে।
  • আপনি BouncyCastle ব্যবহার করে আপনার ডকুমেন্টের encryption এবং decryption প্রক্রিয়া পরিচালনা করতে পারেন।

Apache Tika ব্যবহার:

  • Apache Tika একটি শক্তিশালী লাইব্রেরি যা ফাইল ফরম্যাট শনাক্তকরণ এবং এনক্রিপশন ডিক্রিপশন প্রক্রিয়া সম্পাদন করতে ব্যবহৃত হয়।
  • আপনি Tika ব্যবহার করে password-protected Word ডকুমেন্ট খুলতে পারেন।

সারাংশ

Apache POI ডকুমেন্টে সরাসরি encryption বা decryption সমর্থন না করলেও, আপনি বাইরের লাইব্রেরি যেমন BouncyCastle বা Apache Tika ব্যবহার করে password protection যোগ এবং ডিক্রিপশন পরিচালনা করতে পারেন। POI শুধুমাত্র ডকুমেন্টের কন্টেন্ট পড়তে সহায়ক হলেও, পাসওয়ার্ড প্রোটেকশন এবং এনক্রিপশন বাস্তবায়নের জন্য আপনাকে বাইরের লাইব্রেরি ব্যবহার করতে হবে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion