Java Technologies File Encryption কনফিগার করা গাইড ও নোট

205

Apache POI লাইব্রেরি ব্যবহার করে Excel বা Word ফাইলের ওপর Encryption (এনক্রিপশন) প্রয়োগ করা যেতে পারে, যা ফাইলের সুরক্ষা নিশ্চিত করতে সাহায্য করে। এই প্রক্রিয়াতে একটি পাসওয়ার্ড প্রদান করা হয় যাতে ফাইলটি শুধুমাত্র অনুমোদিত ব্যবহারকারীদের কাছে অ্যাক্সেসযোগ্য হয়।

এখানে আমরা Excel ফাইলের Encryption কনফিগার করার পদ্ধতি দেখব। এটি সাধারণত HSSF (XLS) এবং XSSF (XLSX) ফাইলের জন্য প্রযোজ্য।


১. POI দিয়ে Excel ফাইল এনক্রিপ্ট করা

POI লাইব্রেরি ব্যবহার করে Excel ফাইল এনক্রিপ্ট করতে XSSFWorkbook বা HSSFWorkbook ক্লাসের মাধ্যমে ফাইল তৈরি বা এডিট করতে হবে, তারপর POIFSFileSystem বা XSSFEncryptor এর সাহায্যে পাসওয়ার্ড সেট করতে হবে।

Maven ডিপেন্ডেন্সি

এটি কার্যকরভাবে কাজ করতে poi-ooxml এবং poi-ooxml-schemas লাইব্রেরি ব্যবহার করতে হবে। আপনি নিচের Maven ডিপেন্ডেন্সি ব্যবহার করতে পারেন:

<dependencies>
    <!-- Apache POI (for working with Excel files and encryption) -->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>5.2.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml-schemas</artifactId>
        <version>5.2.3</version>
    </dependency>
</dependencies>

২. Excel ফাইলে পাসওয়ার্ড এনক্রিপশন যোগ করা

এখানে একটি উদাহরণ দেওয়া হলো যেখানে একটি XSSFWorkbook তৈরি করা হয়েছে এবং তার ওপর পাসওয়ার্ড এনক্রিপশন প্রয়োগ করা হয়েছে।

উদাহরণ: Excel ফাইল এনক্রিপ্ট করা

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFPictureData;

import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;

public class ExcelFileEncryptionExample {
    public static void main(String[] args) throws IOException, InvalidFormatException {
        // নতুন Excel ফাইল তৈরি
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet sheet = workbook.createSheet("Sheet1");

        // কিছু ডেটা যোগ করা
        Object[][] data = {
                {"Name", "Age"},
                {"John", 25},
                {"Jane", 30},
                {"Jack", 35}
        };

        int rowNum = 0;
        for (Object[] rowData : data) {
            Row row = sheet.createRow(rowNum++);
            int colNum = 0;
            for (Object cellData : rowData) {
                Cell cell = row.createCell(colNum++);
                if (cellData instanceof String) {
                    cell.setCellValue((String) cellData);
                } else if (cellData instanceof Integer) {
                    cell.setCellValue((Integer) cellData);
                }
            }
        }

        // Excel ফাইল এনক্রিপ্ট করার জন্য POIFSFileSystem ব্যবহার করা
        POIFSFileSystem fs = new POIFSFileSystem();
        
        // পাসওয়ার্ড সেট করা
        String password = "secret123";  // পাসওয়ার্ড

        // Excel ফাইল সেভ করার আগে এনক্রিপ্ট করা
        try (FileOutputStream fileOut = new FileOutputStream("EncryptedExcelFile.xlsx")) {
            workbook.write(fileOut);
            fs.getRoot().setPassword(password);  // পাসওয়ার্ড প্রয়োগ করা
        }

        workbook.close();
    }
}

কোড ব্যাখ্যা:

  1. XSSFWorkbook এবং XSSFSheet এর মাধ্যমে Excel ফাইল তৈরি করা হয় এবং কিছু ডেটা যোগ করা হয়।
  2. POIFSFileSystem ব্যবহার করে ফাইল সিস্টেম তৈরি করা হয় যাতে ফাইল এনক্রিপ্ট করা যায়।
  3. ফাইলটি সেভ করার সময় পাসওয়ার্ড সেট করা হয়, যা ফাইলটি খুলতে হলে প্রয়োজন।

৩. HSSFWorkbook এর মাধ্যমে এনক্রিপশন

HSSFWorkbook (XLS ফাইল ফরম্যাট) এর জন্য এনক্রিপশন করা হয় একই পদ্ধতিতে, তবে POIFSFileSystem এর সাথে কাজ করতে হবে।

উদাহরণ: HSSFWorkbook ফাইল এনক্রিপ্ট করা

import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

import java.io.FileOutputStream;
import java.io.IOException;

public class HSSFExcelEncryptionExample {
    public static void main(String[] args) throws IOException {
        // নতুন HSSFWorkbook (XLS ফরম্যাট) তৈরি
        HSSFWorkbook workbook = new HSSFWorkbook();
        HSSFSheet sheet = workbook.createSheet("Sheet1");

        // কিছু ডেটা যোগ করা
        Object[][] data = {
                {"Name", "Age"},
                {"John", 25},
                {"Jane", 30},
                {"Jack", 35}
        };

        int rowNum = 0;
        for (Object[] rowData : data) {
            HSSFRow row = (HSSFRow) sheet.createRow(rowNum++);
            int colNum = 0;
            for (Object cellData : rowData) {
                HSSFCell cell = (HSSFCell) row.createCell(colNum++);
                if (cellData instanceof String) {
                    cell.setCellValue((String) cellData);
                } else if (cellData instanceof Integer) {
                    cell.setCellValue((Integer) cellData);
                }
            }
        }

        // HSSFWorkbook এর জন্য POIFSFileSystem ব্যবহার
        POIFSFileSystem fs = new POIFSFileSystem();

        // পাসওয়ার্ড সেট করা
        String password = "secret123";  // পাসওয়ার্ড

        // ফাইল এনক্রিপ্ট করার জন্য POIFSFileSystem ব্যবহার
        try (FileOutputStream fileOut = new FileOutputStream("EncryptedHSSFExcelFile.xls")) {
            workbook.write(fileOut);
            fs.getRoot().setPassword(password);  // পাসওয়ার্ড সেট করা
        }

        workbook.close();
    }
}

এই উদাহরণে HSSFWorkbook এর মাধ্যমে XLS ফাইল এনক্রিপ্ট করা হয়েছে। POIFSFileSystem ব্যবহার করে ফাইলটির পাসওয়ার্ড সেট করা হয়।


৪. Excel ফাইল থেকে পাসওয়ার্ড রক্ষা করা

এনক্রিপ্ট করা ফাইলটি যদি খুলতে হয়, তাহলে আপনাকে সেই ফাইলের পাসওয়ার্ড সরবরাহ করতে হবে। Apache POI এর মাধ্যমে পাসওয়ার্ড যাচাই এবং ফাইল খোলার প্রক্রিয়া সহজে সম্পন্ন করা যায়।


সারাংশ

  • Apache POI লাইব্রেরি ব্যবহার করে Excel (XLS/XLSX) ফাইল এনক্রিপ্ট করা যায়।
  • POIFSFileSystem বা XSSFEncryptor ব্যবহার করে ফাইলে পাসওয়ার্ড এনক্রিপশন যোগ করা যায়।
  • HSSFWorkbook এবং XSSFWorkbook ব্যবহার করে Excel ফাইল তৈরি এবং এনক্রিপ্ট করা যায়।
  • ফাইলটি খুলতে হলে পাসওয়ার্ড দিতে হবে, যা ফাইলের সুরক্ষা নিশ্চিত করে।
Content added By
Promotion

Are you sure to start over?

Loading...