Java এর স্ট্যান্ডার্ড java.util.zip API সরাসরি Password-Protected ZIP ফাইল তৈরি করতে সমর্থ নয়। তবে, আপনি তৃতীয় পক্ষের লাইব্রেরি ব্যবহার করে এই কাজটি করতে পারেন। এমন কিছু তৃতীয় পক্ষের লাইব্রেরি আছে যা Zip ফাইল তৈরিতে পাসওয়ার্ড সুরক্ষা যোগ করতে সহায়তা করে।
জনপ্রিয় তৃতীয় পক্ষের লাইব্রেরি:
- Apache Commons Compress: যদিও এটি ZIP ফাইলের জন্য পাসওয়ার্ড সুরক্ষা সরাসরি প্রদান করে না, তবে আপনি
7zবাtarফরম্যাটের জন্য এই লাইব্রেরি ব্যবহার করতে পারেন। - TrueZIP: এটি একটি শক্তিশালী লাইব্রেরি, যা ZIP ফাইল এবং অন্যান্য আর্কাইভ ফরম্যাটের সাথে কাজ করতে সহায়তা করে। তবে এটি পাসওয়ার্ড সুরক্ষা সরাসরি প্রদান করে না।
- Zip4j: এটি একটি খুব জনপ্রিয় এবং সহজে ব্যবহারযোগ্য লাইব্রেরি যা পাসওয়ার্ড প্রোটেক্টেড ZIP ফাইল তৈরি করার জন্য ব্যবহৃত হয়।
Zip4j লাইব্রেরি ব্যবহার করে Password-Protected ZIP ফাইল তৈরি করা:
Zip4j লাইব্রেরি একটি শক্তিশালী এবং সহজ পদ্ধতি সরবরাহ করে যার মাধ্যমে আপনি পাসওয়ার্ড সুরক্ষিত ZIP ফাইল তৈরি করতে পারেন। এটি AES এনক্রিপশন সমর্থন করে এবং পাসওয়ার্ড দিয়ে ZIP ফাইলকে সুরক্ষিত করতে সহায়তা করে।
Zip4j ব্যবহার করার জন্য প্রথমে লাইব্রেরি যোগ করতে হবে:
যদি আপনি Maven ব্যবহার করেন, তাহলে আপনার pom.xml ফাইলে নিচের ডিপেনডেন্সি যোগ করুন:
<dependency>
<groupId>net.lingala.zip4j</groupId>
<artifactId>zip4j</artifactId>
<version>2.10.0</version>
</dependency>
Password-Protected ZIP ফাইল তৈরি করার উদাহরণ:
import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.model.ZipParameters;
import java.io.File;
public class PasswordProtectedZipExample {
public static void main(String[] args) {
// ZIP ফাইলের পাথ এবং পাসওয়ার্ড
String zipFilePath = "protected.zip";
String password = "mySecurePassword";
// জিপ করার জন্য ফাইল বা ফোল্ডারের পাথ
String fileToZipPath = "file1.txt";
try {
// ZipFile অবজেক্ট তৈরি
ZipFile zipFile = new ZipFile(zipFilePath, password.toCharArray());
// ZipParameters সেট করা (যেমন এনক্রিপশন, compression level)
ZipParameters parameters = new ZipParameters();
parameters.setEncryptFiles(true); // ফাইল এনক্রিপ্ট করা
parameters.setCompressionLevel(ZipParameters.COMP_LEVEL_NORMAL); // কম্প্রেশন স্তর
// ZIP ফাইল তৈরি এবং ফাইল যোগ করা
zipFile.addFile(new File(fileToZipPath), parameters);
System.out.println("Password-protected ZIP file created successfully!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Code Explanation:
- ZipFile:
ZipFileক্লাস ব্যবহার করে পাসওয়ার্ড সুরক্ষিত ZIP ফাইল তৈরি করা হয়। এখানে প্রথম প্যারামিটার হিসেবে ZIP ফাইলের পাথ এবং দ্বিতীয় প্যারামিটার হিসেবে পাসওয়ার্ড সেট করা হয়। - ZipParameters:
ZipParametersক্লাসটি ZIP ফাইলের জন্য বিভিন্ন সেটিংস নির্ধারণ করতে ব্যবহৃত হয়। যেমন, ফাইল এনক্রিপশন চালু করা (setEncryptFiles(true)), কম্প্রেশন লেভেল নির্ধারণ ইত্যাদি। - addFile():
addFile()মেথড ব্যবহার করে নির্দিষ্ট ফাইল বা ডিরেক্টরি ZIP ফাইলে যোগ করা হয়। - Password Encryption:
setEncryptFiles(true)ব্যবহার করে ZIP ফাইলের প্রতিটি ফাইল পাসওয়ার্ড দিয়ে এনক্রিপ্ট করা হয়। - File: যেকোনো ফাইল বা ডিরেক্টরি
Fileঅবজেক্ট হিসেবে প্রদান করা হয় এবং সেটিaddFile()মেথডের মাধ্যমে ZIP ফাইলে যোগ করা হয়।
Zip4j এর মাধ্যমে কিছু অতিরিক্ত বৈশিষ্ট্য:
- AES-256 Encryption: Zip4j AES-256 এনক্রিপশন সমর্থন করে, যা অত্যন্ত শক্তিশালী নিরাপত্তা প্রদান করে।
- Multiple Files or Directories: একাধিক ফাইল বা ডিরেক্টরি একটি পাসওয়ার্ড-প্রোটেক্টেড ZIP ফাইলে যোগ করা যায়।
- Compression Levels: আপনি ZIP ফাইলের কম্প্রেশন লেভেল নিয়ন্ত্রণ করতে পারেন (
setCompressionLevel()), যেমন Fast, Normal, এবং Maximum। - Split Archives: Zip4j ব্যবহার করে আপনি ZIP ফাইলকে ছোট অংশে বিভক্ত করতে পারেন।
Password-Protected ZIP ফাইল থেকে ফাইল আনজিপ করার উদাহরণ:
import net.lingala.zip4j.ZipFile;
public class UnzipPasswordProtectedExample {
public static void main(String[] args) {
String zipFilePath = "protected.zip"; // পাসওয়ার্ড সুরক্ষিত ZIP ফাইলের পাথ
String destDir = "extracted/"; // আর্কাইভ থেকে আউটপুট ফোল্ডার
String password = "mySecurePassword"; // পাসওয়ার্ড
try {
// ZIP ফাইল খুলতে
ZipFile zipFile = new ZipFile(zipFilePath, password.toCharArray());
// ZIP ফাইল আনজিপ করা
zipFile.extractAll(destDir);
System.out.println("ZIP file extracted successfully!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Zip4j লাইব্রেরি ব্যবহার করে আপনি খুব সহজেই Password-Protected ZIP ফাইল তৈরি এবং আনজিপ করতে পারেন। এই লাইব্রেরিটি অত্যন্ত সহজ এবং শক্তিশালী নিরাপত্তা প্রদান করে (AES-256 এনক্রিপশন সহ), যা একটি প্রফেশনাল নিরাপত্তা সমাধান তৈরি করতে সক্ষম।
Read more