Dictionary এবং Blacklist Validation এর মাধ্যমে Password Strength বৃদ্ধি

Passay এর Security Considerations - প্যাসে (Passay) - Java Technologies

328

Passay লাইব্রেরি ব্যবহার করে Dictionary এবং Blacklist Validation এর মাধ্যমে পাসওয়ার্ডের শক্তি (password strength) বাড়ানো একটি কার্যকরী উপায়। এই দুটি প্রযুক্তি পাসওয়ার্ডের নিরাপত্তা বাড়াতে সাহায্য করে, কারণ এগুলি কমন শব্দ এবং অবাঞ্ছিত পাসওয়ার্ডের ব্যবহার প্রতিরোধ করে।

Dictionary Validation:

Dictionary Validation পাসওয়ার্ডে সাধারণ বা সহজ শব্দ যেমন "password", "12345", "qwerty" ইত্যাদি থাকার ক্ষেত্রে একটি অবৈধ বার্তা প্রদান করে। এটি এমন পাসওয়ার্ডকে নিষিদ্ধ করে যেগুলি সহজেই অনুমান করা যায়।

Blacklist Validation:

Blacklist Validation পাসওয়ার্ডে বিশেষভাবে নিষিদ্ধ (blacklisted) শব্দ বা ফ্রেজ চেক করতে ব্যবহৃত হয়, যেমন সাধারণ পাসওয়ার্ড বা নিরাপত্তার জন্য ঝুঁকিপূর্ণ শব্দ (যেমন "admin", "root", "welcome" ইত্যাদি)। এর মাধ্যমে, আপনি এমন পাসওয়ার্ড আটকাতে পারেন যেগুলি নিরাপত্তার জন্য ঝুঁকিপূর্ণ।


Passay দিয়ে Dictionary এবং Blacklist Validation যুক্ত করা:

এখানে একটি উদাহরণ দেওয়া হলো যেখানে Passay লাইব্রেরি ব্যবহার করে Dictionary এবং Blacklist Validation যোগ করা হয়েছে।


Step 1: Maven Dependencies

আপনাকে Passay লাইব্রেরি ইনস্টল করতে হবে আপনার pom.xml ফাইলে।

<dependency>
    <groupId>org.passay</groupId>
    <artifactId>passay</artifactId>
    <version>1.6.0</version>
</dependency>

Step 2: Dictionary Validation এবং Blacklist Validation

এখন, Passay-এর সাহায্যে Dictionary এবং Blacklist চেক করা হবে।

import org.passay.*;

import java.util.Arrays;
import java.util.List;

public class PasswordValidationService {

    private PasswordValidator validator;

    public PasswordValidationService() {
        // Blacklist তৈরি (আপনার পছন্দসই শব্দগুলো এখানে অন্তর্ভুক্ত করুন)
        List<String> blacklistedPasswords = Arrays.asList("password", "123456", "qwerty", "welcome", "admin");

        // Passay এর Dictionary এবং Blacklist রুল সেটআপ করা
        this.validator = new PasswordValidator(Arrays.asList(
            new LengthRule(8, 16),               // দৈর্ঘ্য 8 থেকে 16 অক্ষর
            new UppercaseCharacterRule(1),       // অন্তত 1 বড় হাতের অক্ষর
            new DigitCharacterRule(1),           // অন্তত 1 সংখ্যা
            new SpecialCharacterRule(1),         // অন্তত 1 বিশেষ অক্ষর
            new WhitespaceRule(),                // ফাঁকা স্থান নিষিদ্ধ
            new DictionaryRule(new WordListDictionary(blacklistedPasswords)), // Blacklist Validation
            new BlacklistedPasswordRule(blacklistedPasswords)  // পাসওয়ার্ডের ব্ল্যাকলিস্ট যাচাই
        ));
    }

    public boolean validatePassword(String password) {
        RuleResult result = validator.validate(new PasswordData(password));
        return result.isValid();
    }

    public String getValidationMessages(String password) {
        RuleResult result = validator.validate(new PasswordData(password));
        return String.join(", ", validator.getMessages(result));
    }
}

ব্যাখ্যা:

  1. LengthRule: পাসওয়ার্ডের দৈর্ঘ্য 8 থেকে 16 অক্ষরের মধ্যে থাকতে হবে।
  2. UppercaseCharacterRule: অন্তত একটি বড় হাতের অক্ষর থাকতে হবে।
  3. DigitCharacterRule: অন্তত একটি সংখ্যা থাকতে হবে।
  4. SpecialCharacterRule: অন্তত একটি বিশেষ অক্ষর থাকতে হবে (যেমন: @, #, $)।
  5. WhitespaceRule: ফাঁকা স্থান (space) নিষিদ্ধ।
  6. DictionaryRule: একটি ব্ল্যাকলিস্ট তৈরি করা হয়েছে যেখানে কিছু সাধারণ পাসওয়ার্ড অন্তর্ভুক্ত রয়েছে।
  7. BlacklistedPasswordRule: ব্ল্যাকলিস্টে থাকা পাসওয়ার্ডগুলো পাসওয়ার্ড হিসেবে ব্যবহার করা যাবে না।

Step 3: Password Validation and Messages

এখন আমরা এই PasswordValidationService ক্লাসটি ব্যবহার করে পাসওয়ার্ড যাচাই করব এবং যদি পাসওয়ার্ড অবৈধ হয়, তবে ত্রুটি বার্তা প্রদর্শন করব।

public class Main {
    public static void main(String[] args) {
        PasswordValidationService validationService = new PasswordValidationService();

        String password = "admin1234";

        // পাসওয়ার্ড যাচাই করা
        if (validationService.validatePassword(password)) {
            System.out.println("পাসওয়ার্ড বৈধ!");
        } else {
            System.out.println("পাসওয়ার্ড অবৈধ। কারণ:");
            System.out.println(validationService.getValidationMessages(password)); // ত্রুটি বার্তা
        }
    }
}

Step 4: আউটপুট উদাহরণ

ধরা যাক, আপনি যদি পাসওয়ার্ড হিসেবে "admin1234" ব্যবহার করেন, তাহলে আউটপুট হবে:

পাসওয়ার্ড অবৈধ। কারণ:
পাসওয়ার্ডটি ব্ল্যাকলিস্টে রয়েছে!

এছাড়া, আপনি যদি একটি শক্তিশালী পাসওয়ার্ড ব্যবহার করেন, যেমন "MySecure@123", তাহলে আউটপুট হবে:

পাসওয়ার্ড বৈধ!

Step 5: Custom Blacklist File (Optional)

যদি আপনি একটি ব্ল্যাকলিস্ট ফাইল ব্যবহার করতে চান, তাহলে আপনি WordListDictionary ক্লাস ব্যবহার করে একটি টেক্সট ফাইল থেকে শব্দ লোড করতে পারেন:

WordListDictionary dictionary = new WordListDictionary(new File("blacklist.txt"));
new DictionaryRule(dictionary);

এতে আপনি একটি টেক্সট ফাইল (blacklist.txt) থেকে ব্ল্যাকলিস্টের শব্দগুলি লোড করতে পারবেন।


সংক্ষেপে:

  • Dictionary এবং Blacklist Validation পাসওয়ার্ডের নিরাপত্তা বাড়াতে সহায়ক দুটি বৈশিষ্ট্য।
  • Passay লাইব্রেরি সহজেই এই বৈশিষ্ট্যগুলিকে সমর্থন করে এবং ডেভেলপারদের শক্তিশালী পাসওয়ার্ড নীতি প্রয়োগে সহায়তা করে।
  • ব্ল্যাকলিস্ট এবং ডিকশনারি চেকের মাধ্যমে সাধারণ, দুর্বল, এবং পূর্বে ব্যবহৃত পাসওয়ার্ডকে বাধা দেওয়া হয়, যা পাসওয়ার্ডের নিরাপত্তা বৃদ্ধি করে।

এভাবে, Passay এবং Blacklist Validation এর মাধ্যমে পাসওয়ার্ডের শক্তি নিশ্চিত করতে সাহায্য করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...