Passay-এর CharacterData এবং CharacterRules ব্যবহার করে Secure Password তৈরি করতে পারবেন যা বিভিন্ন নিরাপত্তা নিয়ম মেনে চলে, যেমন বড় হাতের অক্ষর, ছোট হাতের অক্ষর, সংখ্যা, এবং বিশেষ চিহ্নের উপস্থিতি।
১. CharacterData:
CharacterData একটি মৌলিক ডেটা ধারণকারী ইন্টারফেস যা পাসওয়ার্ডে প্রয়োজনীয় অক্ষরের ধরনকে নির্ধারণ করে, যেমন:
- বড় হাতের অক্ষর (uppercase)
- ছোট হাতের অক্ষর (lowercase)
- সংখ্যা (digits)
- বিশেষ চিহ্ন (special characters)
২. CharacterRules:
CharacterRules পাসওয়ার্ডে নির্দিষ্ট ধরনের অক্ষরের উপস্থিতি নিশ্চিত করতে ব্যবহৃত হয়।
উদাহরণ: Secure Password তৈরি
import org.passay.*;
import java.util.Arrays;
public class SecurePasswordExample {
public static void main(String[] args) {
// CharacterData তৈরি করে বিভিন্ন ধরনের অক্ষর ঠিক করা
CharacterData lowerCase = new CharacterDataLowercase(); // ছোট হাতের অক্ষর
CharacterData upperCase = new CharacterDataUppercase(); // বড় হাতের অক্ষর
CharacterData digit = new CharacterDataDigits(); // সংখ্যা
CharacterData specialChar = new CharacterDataSpecial(); // বিশেষ অক্ষর
// পাসওয়ার্ডের জন্য রুল তৈরি
CharacterRule lowerCaseRule = new CharacterRule(lowerCase); // ছোট হাতের অক্ষরের জন্য রুল
CharacterRule upperCaseRule = new CharacterRule(upperCase); // বড় হাতের অক্ষরের জন্য রুল
CharacterRule digitRule = new CharacterRule(digit); // সংখ্যা রুল
CharacterRule specialCharRule = new CharacterRule(specialChar); // বিশেষ চিহ্ন রুল
// পাসওয়ার্ড ভ্যালিডেটর তৈরি
PasswordValidator validator = new PasswordValidator(Arrays.asList(
new LengthRule(12, 16), // পাসওয়ার্ডের দৈর্ঘ্য ১২-১৬ অক্ষর হতে হবে
lowerCaseRule, // ছোট হাতের অক্ষর থাকতে হবে
upperCaseRule, // বড় হাতের অক্ষর থাকতে হবে
digitRule, // অন্তত একটি সংখ্যা থাকতে হবে
specialCharRule // অন্তত একটি বিশেষ চিহ্ন থাকতে হবে
));
// টেস্ট পাসওয়ার্ড
String password = "Secure@1234";
// পাসওয়ার্ড যাচাই
RuleResult result = validator.validate(new PasswordData(password));
if (result.isValid()) {
System.out.println("পাসওয়ার্ড বৈধ!");
} else {
System.out.println("পাসওয়ার্ড অবৈধ। কারণ:");
validator.getMessages(result).forEach(System.out::println);
}
}
}
কোড ব্যাখ্যা:
- CharacterData Instances:
CharacterDataLowercase: ছোট হাতের অক্ষর (a-z) এর জন্য।CharacterDataUppercase: বড় হাতের অক্ষর (A-Z) এর জন্য।CharacterDataDigits: সংখ্যা (0-9) এর জন্য।CharacterDataSpecial: বিশেষ চিহ্ন (যেমন:!,@,#) এর জন্য।
- CharacterRule: প্রতিটি ধরনের অক্ষরের জন্য আলাদা রুল তৈরি করা হয়েছে, যেমন:
lowerCaseRule: ছোট হাতের অক্ষর বাধ্যতামূলক।upperCaseRule: বড় হাতের অক্ষর বাধ্যতামূলক।digitRule: অন্তত একটি সংখ্যা বাধ্যতামূলক।specialCharRule: অন্তত একটি বিশেষ চিহ্ন বাধ্যতামূলক।
- PasswordValidator: এখানে
PasswordValidatorএকাধিক রুল ব্যবহার করে পাসওয়ার্ড যাচাই করে। এর মধ্যে LengthRule যোগ করা হয়েছে, যা পাসওয়ার্ডের দৈর্ঘ্য ১২ থেকে ১৬ অক্ষর হওয়া প্রয়োজন। - RuleResult: যাচাই শেষে
RuleResultনিশ্চিত করে যে পাসওয়ার্ডটি নিরাপদ এবং নির্দিষ্ট নীতির সাথে সামঞ্জস্যপূর্ণ কি না। যদি না হয়, তাহলে এটি ব্যর্থ বার্তা প্রদান করবে।
ফলাফল:
এটি এমন একটি পাসওয়ার্ড তৈরি করবে যা:
- অন্তত একটি বড় হাতের অক্ষর, ছোট হাতের অক্ষর, সংখ্যা এবং বিশেষ চিহ্ন থাকবে।
- পাসওয়ার্ডের দৈর্ঘ্য কমপক্ষে ১২ অক্ষর হবে।
Maven Dependency:
Passay লাইব্রেরি ব্যবহার করার জন্য মেভেন ডিপেনডেন্সি:
<dependency>
<groupId>org.passay</groupId>
<artifactId>passay</artifactId>
<version>1.6.0</version>
</dependency>
ব্যবহার ক্ষেত্র:
- পাসওয়ার্ড নিরাপত্তা নীতি বাস্তবায়ন করতে ব্যবহার করা হয়, যেমন:
- ব্যাংকিং অ্যাপ্লিকেশন
- E-commerce ওয়েবসাইট
- নিরাপত্তা সংক্রান্ত অন্যান্য অ্যাপ্লিকেশন
এভাবে, Passay ব্যবহার করে শক্তিশালী এবং নিরাপদ পাসওয়ার্ড তৈরি করা সম্ভব যা সুরক্ষিত অ্যাকাউন্ট ব্যবস্থাপনায় সহায়ক।
Read more