Skill

Dictionary এবং Blacklist Validation

প্যাসে (Passay) - Java Technologies

358

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

Dictionary Validation:

Passay লাইব্রেরি একটি DictionaryRule প্রদান করে যা একটি শব্দের তালিকা থেকে পাসওয়ার্ড যাচাই করে। যদি পাসওয়ার্ডটি তালিকার কোনও শব্দের সাথে মেলে, তবে তা অবৈধ হিসাবে বিবেচিত হয়।

উদাহরণ:

import org.passay.*;

import java.io.File;
import java.io.FileNotFoundException;

public class DictionaryValidationExample {
    public static void main(String[] args) throws FileNotFoundException {
        // নিষিদ্ধ শব্দের ফাইল (ডিকশনারি)
        File dictionaryFile = new File("path/to/dictionary.txt");

        // DictionaryRule তৈরি
        DictionaryRule dictionaryRule = new DictionaryRule(
            new WordListDictionary(
                new FileWordList(dictionaryFile)
            )
        );

        PasswordValidator validator = new PasswordValidator(dictionaryRule);

        String password = "password123";

        RuleResult result = validator.validate(new PasswordData(password));

        if (result.isValid()) {
            System.out.println("পাসওয়ার্ড বৈধ!");
        } else {
            System.out.println("পাসওয়ার্ড অবৈধ। কারণ:");
            validator.getMessages(result).forEach(System.out::println);
        }
    }
}

Blacklist Validation:

Blacklist validation-এর জন্য, একটি তালিকাভুক্ত পাসওয়ার্ড তৈরি করা হয় যা ব্যবহারকারীর জন্য নিষিদ্ধ। এটি সাধারণ পাসওয়ার্ড যেমন "123456", "password", বা "admin" এর মত সহজ পাসওয়ার্ড প্রতিরোধ করতে ব্যবহৃত হয়।

উদাহরণ:

import org.passay.*;

import java.util.Arrays;

public class BlacklistValidationExample {
    public static void main(String[] args) {
        // নিষিদ্ধ পাসওয়ার্ডের তালিকা
        String[] blacklistedPasswords = { "123456", "password", "admin", "welcome" };

        // Blacklist Rule তৈরি
        PasswordValidator validator = new PasswordValidator(
            new IllegalSequenceRule(EnglishSequenceData.Alphabetical, 3, false),
            new IllegalSequenceRule(EnglishSequenceData.Numerical, 3, false),
            new IllegalSequenceRule(EnglishSequenceData.USQwerty, 3, false),
            new DictionaryRule(new WordListDictionary(
                new ArrayWordList(blacklistedPasswords, false)))
        );

        String password = "password";

        RuleResult result = validator.validate(new PasswordData(password));

        if (result.isValid()) {
            System.out.println("পাসওয়ার্ড বৈধ!");
        } else {
            System.out.println("পাসওয়ার্ড অবৈধ। কারণ:");
            validator.getMessages(result).forEach(System.out::println);
        }
    }
}

Output:

  1. পাসওয়ার্ড যদি নিষিদ্ধ তালিকার সাথে মেলে, তবে এটি অবৈধ ঘোষণা করা হবে।
  2. Dictionary ফাইল বা Blacklist array ব্যবহার করে এটি পাসওয়ার্ডের নিরাপত্তা বাড়ায়।

নিরাপত্তার সুবিধা:

  • সাধারণ ও অনুমেয় পাসওয়ার্ড প্রতিরোধ।
  • Dictionary-based brute-force আক্রমণ প্রতিরোধ।
  • ডেভেলপারদের কাস্টম নিষিদ্ধ তালিকা যোগ করার সহজ উপায়।

Passay-এর মাধ্যমে dictionary এবং blacklist validation সহজে ইমপ্লিমেন্ট করা যায়, যা অ্যাপ্লিকেশনের নিরাপত্তা উন্নত করতে কার্যকর।

Content added By

Passay-এর মাধ্যমে পাসওয়ার্ডে Dictionary শব্দ চেক করতে হলে DictionaryRule ব্যবহার করা হয়। এই রুলটি একটি শব্দতালিকা (dictionary) প্রদান করে পাসওয়ার্ডে সাধারণ বা নিষিদ্ধ শব্দ চেক করতে ব্যবহৃত হয়।

উদাহরণ:

import org.passay.*;

import java.util.Arrays;

public class DictionaryRuleExample {
    public static void main(String[] args) {
        // একটি সাধারণ শব্দ তালিকা তৈরি
        WordList wordList = new ArrayWordList(new String[] { 
            "password", "admin", "user", "123456", "qwerty" 
        }, false); // Case-sensitive নয়

        // একটি শব্দ তালিকার উপর ভিত্তি করে রুল তৈরি
        DictionaryRule dictionaryRule = new DictionaryRule(wordList);

        // পাসওয়ার্ড ভ্যালিডেটর তৈরি
        PasswordValidator validator = new PasswordValidator(Arrays.asList(
            dictionaryRule
        ));

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

        RuleResult result = validator.validate(new PasswordData(password));

        if (result.isValid()) {
            System.out.println("পাসওয়ার্ড বৈধ!");
        } else {
            System.out.println("পাসওয়ার্ড অবৈধ। কারণ:");
            validator.getMessages(result).forEach(System.out::println);
        }
    }
}

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

  1. WordList:
    এখানে ArrayWordList ব্যবহার করে একটি শব্দতালিকা তৈরি করা হয়েছে। আপনি ResourceWordList ব্যবহার করে ফাইল বা অন্য উৎস থেকে শব্দ লোড করতে পারেন।
  2. DictionaryRule:
    এই রুলটি শব্দতালিকায় থাকা যেকোনো শব্দের সাথে পাসওয়ার্ড মিলিয়ে দেখে।
  3. PasswordValidator:
    এটি DictionaryRule-সহ পাসওয়ার্ড যাচাই করার জন্য ব্যবহার করা হয়।
  4. Validation Output:
    যদি পাসওয়ার্ড শব্দতালিকার সাথে মিলে যায়, তবে এটি অবৈধ হিসেবে চিহ্নিত হবে এবং কারণ দেখাবে।

Maven Dependency:

Passay লাইব্রেরি ব্যবহারের জন্য Maven dependency যোগ করতে হবে:

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

Dictionary ফাইল ব্যবহার:

আপনি যদি বহিরাগত একটি ডিকশনারি ফাইল ব্যবহার করতে চান, তাহলে FileWordList বা ResourceWordList ব্যবহার করতে পারেন:

WordList wordList = WordLists.createFromReader(
    new FileReader[] { new FileReader("path/to/dictionary.txt") },
    false, // case-insensitive
    new ArraysSort()
);
DictionaryRule dictionaryRule = new DictionaryRule(wordList);

ব্যবহার ক্ষেত্র:

  • সাধারণ বা সহজ পাসওয়ার্ড (যেমন: "password123") প্রতিরোধ।
  • Dictionary-based brute-force আক্রমণ প্রতিরোধ।
  • আরো নিরাপদ পাসওয়ার্ড নীতি বাস্তবায়ন।

এটি একটি কার্যকর পদ্ধতি যাতে ব্যবহারকারীর পাসওয়ার্ড শক্তিশালী হয় এবং নিরাপত্তা নিশ্চিত করা যায়।

Content added By

ব্ল্যাকলিস্ট (Blacklist) কি?

প্যাসে (Passay) লাইব্রেরির মধ্যে ব্ল্যাকলিস্ট (Blacklist) ফিচার ব্যবহার করে আপনি একটি নির্দিষ্ট পাসওয়ার্ডের তালিকা তৈরি করতে পারেন, যেগুলি কখনও ব্যবহৃত হতে পারবে না। ব্ল্যাকলিস্ট সাধারণত সেসব পাসওয়ার্ড অন্তর্ভুক্ত করে যা খুব সাধারণ, অনুমানযোগ্য বা নিরাপত্তা ঝুঁকি তৈরি করতে পারে। উদাহরণস্বরূপ, "password123", "admin" বা "123456" এর মতো পাসওয়ার্ডগুলি নিরাপত্তার জন্য অত্যন্ত দুর্বল হতে পারে এবং সেগুলি ব্ল্যাকলিস্টে রাখা উচিত।

ব্ল্যাকলিস্ট ব্যবহারের সুবিধা

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

  • সাধারণ ও অনুমানযোগ্য পাসওয়ার্ড প্রতিরোধ করা
  • নিরাপত্তা নিশ্চিত করা
  • ব্যবহারকারীদের পাসওয়ার্ডের শক্তিশালী প্যাটার্ন ব্যবহার করতে উদ্বুদ্ধ করা

প্যাসে লাইব্রেরিতে ব্ল্যাকলিস্ট ব্যবহার করা

প্যাসে লাইব্রেরিতে ব্ল্যাকলিস্ট ব্যবহার করার জন্য আপনাকে প্রথমে একটি ব্ল্যাকলিস্ট তৈরি করতে হবে এবং তা পাসওয়ার্ড পলিসির মধ্যে অন্তর্ভুক্ত করতে হবে। নিচে ব্ল্যাকলিস্ট ব্যবহার করার কিছু সাধারণ পদক্ষেপ দেওয়া হল:

১. ব্ল্যাকলিস্ট তৈরি করা

প্রথমে একটি ব্ল্যাকলিস্ট তৈরি করতে হবে, যাতে নিষিদ্ধ পাসওয়ার্ডের তালিকা অন্তর্ভুক্ত থাকবে। প্যাসে লাইব্রেরি .BlacklistRule ক্লাস ব্যবহার করে এটি করা যায়।

import org.passay.*;

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

public class PasswordValidator {
    public static void main(String[] args) {
        // ব্ল্যাকলিস্টের পাসওয়ার্ডের তালিকা
        List<String> blacklist = Arrays.asList("password123", "123456", "admin", "qwerty", "letmein");

        // ব্ল্যাকলিস্ট রুল তৈরি
        BlacklistRule blacklistRule = new BlacklistRule(new AllowedCharactersRule(blacklist));

        // পাসওয়ার্ড পলিসি সেট করা
        PasswordValidator validator = new PasswordValidator(
            Arrays.asList(blacklistRule)
        );

        // পাসওয়ার্ড যাচাই করা
        PasswordData password = new PasswordData("password123");
        RuleResult result = validator.validate(password);

        if (result.isValid()) {
            System.out.println("পাসওয়ার্ড বৈধ");
        } else {
            System.out.println("পাসওয়ার্ড অবৈধ: " + result.getDetails());
        }
    }
}

২. ব্ল্যাকলিস্ট নিয়ম যুক্ত করা

BlacklistRule ক্লাস ব্যবহার করে আপনি পাসওয়ার্ড পলিসিতে ব্ল্যাকলিস্টের নিয়ম যোগ করতে পারেন। এটি পাসওয়ার্ড যাচাইয়ের সময় স্বয়ংক্রিয়ভাবে নিষিদ্ধ পাসওয়ার্ড চেক করবে।

// ব্ল্যাকলিস্টে থাকা পাসওয়ার্ডগুলো
List<String> blacklist = Arrays.asList("password123", "123456", "admin", "qwerty", "letmein");

// ব্ল্যাকলিস্ট রুল তৈরি
BlacklistRule blacklistRule = new BlacklistRule(new AllowedCharactersRule(blacklist));

৩. পাসওয়ার্ড যাচাই করা

এবার, পাসওয়ার্ড যাচাই করার সময় প্যাসে ব্ল্যাকলিস্টের নিয়ম প্রয়োগ করবে। যদি পাসওয়ার্ড ব্ল্যাকলিস্টে থাকে, তবে সেটি অবৈধ হিসেবে চিহ্নিত হবে।

PasswordData password = new PasswordData("password123");
RuleResult result = validator.validate(password);

এখানে, যদি পাসওয়ার্ডটি "password123" থাকে, তবে এটি অবৈধ হিসেবে চিহ্নিত হবে এবং একটি ত্রুটি বার্তা দেখানো হবে।

ব্ল্যাকলিস্ট নিয়মে অতিরিক্ত কাস্টমাইজেশন

আপনি যদি ব্ল্যাকলিস্টের নিয়মে অতিরিক্ত কাস্টমাইজেশন চান, যেমন পাসওয়ার্ডের মধ্যে নির্দিষ্ট শব্দের উপস্থিতি বা প্যাটার্ন চেক করা, তবে প্যাসে লাইব্রেরি সেই সুবিধাও প্রদান করে। উদাহরণস্বরূপ:

// কাস্টম ব্ল্যাকলিস্ট রুল তৈরি
BlacklistRule customBlacklistRule = new BlacklistRule(new AllowedCharactersRule(blacklist)) {
    @Override
    public RuleResult validate(PasswordData passwordData) {
        String password = passwordData.getPassword();
        if (password.contains("admin")) {
            return RuleResult.fromError("পাসওয়ার্ডে 'admin' শব্দটি ব্যবহার করা যাবে না");
        }
        return super.validate(passwordData);
    }
};

ব্ল্যাকলিস্ট ব্যবহার করার সেরা প্র্যাকটিস

  • পাসওয়ার্ডের নিরাপত্তা নিয়ম: ব্ল্যাকলিস্টে শুধু অনুমানযোগ্য পাসওয়ার্ডই অন্তর্ভুক্ত করবেন না, বরং প্রাথমিক নিরাপত্তার জন্য নিয়মিত আপডেট করুন।
  • ব্যবহারকারীর পাসওয়ার্ড শক্তিশালী করা: ব্ল্যাকলিস্টের পাশাপাশি অন্যান্য শক্তিশালী পাসওয়ার্ড নিয়ম যেমন বিশেষ চিহ্ন, সংখ্যা, বড় হাতের অক্ষর ইত্যাদি অন্তর্ভুক্ত করতে হবে।
  • ইনপুট ভ্যালিডেশন: পাসওয়ার্ড ইনপুটের সময় সঠিকভাবে ভ্যালিডেশন করার জন্য সিস্টেমটি সচেতন রাখা উচিত।

প্যাসে (Passay) লাইব্রেরি ব্যবহার করে ব্ল্যাকলিস্টের মাধ্যমে নিষিদ্ধ পাসওয়ার্ড নির্ধারণ করা নিরাপত্তা বৃদ্ধি করতে সাহায্য করে। এটি আপনাকে অনুমানযোগ্য এবং সাধারণ পাসওয়ার্ডের বিরুদ্ধে সুরক্ষা প্রদান করে, যা একটি শক্তিশালী পাসওয়ার্ড পলিসি নিশ্চিত করে।

Content added By

Passay Java Technologies-এর Dictionary এবং Blacklist Validation ব্যবহারের মাধ্যমে আপনি পাসওয়ার্ড যাচাই করতে পারেন এবং বিশেষ করে নিষিদ্ধ বা সাধারণ পাসওয়ার্ডগুলি ব্লক করতে পারেন। এটি বিশেষত নিরাপত্তা প্রয়োগে গুরুত্বপূর্ণ, যেখানে কিছু শব্দ বা পাসওয়ার্ডগুলি সাধারণভাবে অনুমোদিত হয় না (যেমন "password", "123456", বা ব্যবহারকারীর নাম)।

নিচে Dictionary এবং Blacklist Validation ব্যবহারের উদাহরণ দেওয়া হয়েছে:

উদাহরণ ১: Blacklist Validation (নিষিদ্ধ পাসওয়ার্ডের তালিকা)

Blacklist validation ব্যবহৃত হয় যাতে কিছু নির্দিষ্ট পাসওয়ার্ড নিষিদ্ধ করা যায়, যেমন সাধারণ পাসওয়ার্ড বা নিরাপত্তার জন্য ঝুঁকিপূর্ণ পাসওয়ার্ড।

import org.passay.*;
import java.util.Arrays;

public class PasswordBlacklistExample {
    public static void main(String[] args) {
        // ব্ল্যাকলিস্ট (নিষিদ্ধ পাসওয়ার্ড)
        String[] blacklist = {"password", "123456", "qwerty", "letmein"};

        // ব্ল্যাকলিস্ট রুল তৈরি
        BlacklistRule blacklistRule = new BlacklistRule(new WordListDictionary(Arrays.asList(blacklist)));

        PasswordValidator validator = new PasswordValidator(Arrays.asList(
            new LengthRule(8, 16),       // পাসওয়ার্ডের দৈর্ঘ্য 8-16 অক্ষর
            new UppercaseCharacterRule(1), // অন্তত একটি বড় হাতের অক্ষর
            new DigitCharacterRule(1),  // অন্তত একটি সংখ্যা
            new SpecialCharacterRule(1), // অন্তত একটি স্পেশাল ক্যারেক্টার
            new WhitespaceRule(),        // পাসওয়ার্ডে ফাঁকা জায়গা নিষিদ্ধ
            blacklistRule                // ব্ল্যাকলিস্ট যাচাই
        ));

        String password = "123456"; // একটি নিষিদ্ধ পাসওয়ার্ড

        RuleResult result = validator.validate(new PasswordData(password));

        if (result.isValid()) {
            System.out.println("পাসওয়ার্ড বৈধ!");
        } else {
            System.out.println("পাসওয়ার্ড অবৈধ। কারণ:");
            validator.getMessages(result).forEach(System.out::println);
        }
    }
}

এখানে, "123456" পাসওয়ার্ড ব্ল্যাকলিস্টে রয়েছে, তাই এটি অবৈধ হিসেবে চিহ্নিত হবে।

উদাহরণ ২: Dictionary Validation (পাসওয়ার্ডে শব্দের তালিকা যাচাই)

Dictionary validation ব্যবহার করে আপনি পাসওয়ার্ডে সহজ শব্দ বা অভিধানের শব্দগুলি থাকা থেকে বিরত থাকতে পারেন, যা দুর্বল পাসওয়ার্ডের চিহ্ন হতে পারে।

import org.passay.*;
import java.util.Arrays;

public class PasswordDictionaryExample {
    public static void main(String[] args) {
        // ডিকশনারি (অভিধান) তৈরি
        String[] dictionary = {"password", "admin", "welcome", "qwerty"};

        // ডিকশনারি রুল তৈরি
        DictionaryRule dictionaryRule = new DictionaryRule(new WordListDictionary(Arrays.asList(dictionary)));

        PasswordValidator validator = new PasswordValidator(Arrays.asList(
            new LengthRule(8, 16),       // পাসওয়ার্ডের দৈর্ঘ্য 8-16 অক্ষর
            new UppercaseCharacterRule(1), // অন্তত একটি বড় হাতের অক্ষর
            new DigitCharacterRule(1),  // অন্তত একটি সংখ্যা
            new SpecialCharacterRule(1), // অন্তত একটি স্পেশাল ক্যারেক্টার
            new WhitespaceRule(),        // পাসওয়ার্ডে ফাঁকা জায়গা নিষিদ্ধ
            dictionaryRule               // ডিকশনারি যাচাই
        ));

        String password = "admin123"; // পাসওয়ার্ডে একটি ডিকশনারি শব্দ রয়েছে

        RuleResult result = validator.validate(new PasswordData(password));

        if (result.isValid()) {
            System.out.println("পাসওয়ার্ড বৈধ!");
        } else {
            System.out.println("পাসওয়ার্ড অবৈধ। কারণ:");
            validator.getMessages(result).forEach(System.out::println);
        }
    }
}

এখানে, "admin123" পাসওয়ার্ডে "admin" শব্দটি ডিকশনারিতে রয়েছে, তাই এটি অবৈধ হিসেবে চিহ্নিত হবে।

Maven Dependency:

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

উপসংহার:

  • Blacklist Rule: এটি নিষিদ্ধ বা ঝুঁকিপূর্ণ পাসওয়ার্ডের তালিকা যাচাই করে।
  • Dictionary Rule: এটি অভিধানের সহজ শব্দ বা সাধারণ পাসওয়ার্ডগুলিকে আটকায়।

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

Content added By
Promotion

Are you sure to start over?

Loading...