পাসওয়ার্ড শক্তি পরীক্ষক
zxcvbn ইঞ্জিন দিয়ে রিয়েল-টাইম বিশ্লেষণ: সাধারণ পাসওয়ার্ড অভিধান, কীবোর্ড ওয়াক, সিকোয়েন্স, পুনরাবৃত্তি এবং তারিখ সবই আপনার পয়েন্ট কেটে নেয় — এটি উপরের/নিচের অক্ষর/সংখ্যা/চিহ্নের শ্রেণি গণনার চেয়ে নিরাপত্তার আরও সঠিক পরিমাপ। সবকিছু স্থানীয়ভাবে চলে; আপনার পাসওয়ার্ড কখনো ব্রাউজার ছেড়ে যায় না।
- ইঞ্জিন
- zxcvbn
- স্কোর
- 0–4 স্কেল
- গোপনীয়তা
- কখনো আপলোড করা হয় না
- অভিধান
- সাধারণ পাসওয়ার্ড অন্তর্নির্মিত
উন্নত নীতি সেটিংস
কমা বা নতুন লাইন দিয়ে পৃথক, কেস-সংবেদনশীল নয়। zxcvbn স্বয়ংক্রিয়ভাবে কেস বৈচিত্র, লেট সাবস্টিটিউশন (যেমন Pa$$w0rd) এবং রিভার্সাল সনাক্ত করে।
দুটি পাসওয়ার্ড তুলনা করুন
কেন এটা গুরুত্বপূর্ণ
"বড় + ছোট + অঙ্ক + প্রতীক" নিরাপত্তা নয়
P@ssw0rd! চারটি চারাক্ষরের বাক্স পূরণ করে এবং এখনও বাস্তব ব্রীচের তালিকায় শীর্ষে রয়েছে। শক্তি নির্ভর করে অনুমানযোগ্যতার উপর, চারাক্ষর-শ্রেণীর গাণিতিক নয়।
দুর্বল পাসওয়ার্ড ম্যাচিং
সাধারণ পাসওয়ার্ড এবং শব্দের একটি অন্তর্নির্মিত অভিধান ভারীভাবে শাস্তিযোগ্য — password, 123456 এবং P@ssw0rd সঠিকভাবে খুব দুর্বল হিসেবে স্কোর করে।
প্যাটার্ন সনাক্তকরণ
কীবোর্ড ওয়াক, সরল সিকোয়েন্স, পুনরাবৃত্তি, তারিখ এবং সাধারণ শব্দ সবই কার্যকর অনুমান স্থানকে ছোট করে।
কার্যকর, তাত্ত্বিক নয় এনট্রপি
স্কোর কাঠামো থেকে প্রকৃত অনুমানের অনুমান করে — চারসেটের আকারকে দৈর্ঘ্য দিয়ে গুণ করে না।
দুটি আক্রমণের দৃশ্যকল্প
অফলাইন GPU ক্র্যাকিং এবং অনলাইন রেট-লিমিটেড অনুমানের জন্য পৃথক অনুমান আক্রমণকারীর খরচ সম্পর্কে ধারণা তৈরি করে।
কাস্টম পলিসি ও ব্লকলিস্ট
ন্যূনতম দৈর্ঘ্য এবং শ্রেণীর প্রয়োজনীয়তা সেট করুন; কর্পোরেট পাসওয়ার্ড নিয়ম মিলানোর জন্য কোম্পানির নাম বা প্রজেক্ট কোডনেম যোগ করুন।
সম্পূর্ণ স্থানীয়
আপনার পাসওয়ার্ড কখনো ব্রাউজার ত্যাগ করে না বা সার্ভারে স্পর্শ করে না; সেটিংস শুধুমাত্র আপনার নিজের localStorage-তে থাকে।
পাসওয়ার্ডের শক্তি বোঝা
কীভাবে স্কোরিং কাজ করে, ক্র্যাক টাইমের অর্থ কী এবং আসলে ভালো পাসওয়ার্ড কী তা।
zxcvbn এর 0–4 স্কোর কীভাবে গণনা করা হয়?
zxcvbn প্রথমে পাসওয়ার্ডকে খণ্ডে বিভক্ত করে: অভিধান শব্দ (সাধারণ পাসওয়ার্ড, ইংরেজি শব্দ), কীবোর্ড ওয়াক, সিকোয়েন্স, পুনরাবৃত্তি, তারিখ এবং ব্রুট-ফোর্স খণ্ড।
এটি প্রতি খণ্ডে অনুমানের অনুমান করে, সেগুলোকে মোট অনুমান সংখ্যায় একত্রিত করে এবং এটি 0–4 স্কোরে ম্যাপ করে। সাধারণ রূপান্তর স্বয়ংক্রিয়ভাবে হিসাব করা হয় — ক্যাপিটালাইজেশন রিভার্সাল, লেট সাবস্টিটিউশন (@→a, 0→o), বছরের সাফিক্স — যার কারণে P@ssw0rd এর চরিত্র বৈচিত্র থাকা সত্ত্বেও দুর্বল স্কোর পায়।
কার্যকর এনট্রপি এবং চারসেটের আকারের মধ্যে পার্থক্য কী?
চারসেটের আকার বর্ণমালার আকারকে দৈর্ঘ্য দিয়ে গুণ করে — একটি তাত্ত্বিক সীমা যা ধরে নেয় প্রতিটি চরিত্র সম্পূর্ণরূপে এলোমেলো, যা বাস্তব পাসওয়ার্ডে প্রায়ই হয় না।
কার্যকর এনট্রপি (এখানে দেখানো বিট সংখ্যা) হলো বাস্তব অনুমান স্থান যা zxcvbn অভিধান শব্দ এবং প্যাটার্ন খুঁজে পাওয়ার পর অনুমান করে। একই দৈর্ঘ্যে, iloveyou2024 একটি এলোমেলো স্ট্রিংয়ের চেয়ে অনেক কম কার্যকর এনট্রপি রয়েছে।
ক্র্যাক টাইম কীভাবে অনুমান করা হয় — সেগুলো কি নির্ভরযোগ্য?
ক্র্যাক টাইম = আনুমানিক গেস ⁄ প্রতি সেকেন্ডে গেস দুটি গতি দেখানো হয়েছে: ~10 বিলিয়ন/সেকেন্ড অফলাইন GPU ফার্মের জন্য (আক্রমণকারীর কাছে হ্যাশ আছে) এবং ~100/ঘন্টা অনলাইন রেট-সীমিত লগইনের জন্য। এগুলোকে ভবিষ্যদ্বাণী নয়, মাত্র মাত্রার আদেশ হিসেবে বিবেচনা করুন: প্রকৃত গতি নির্ভর করে হ্যাশ অ্যালগরিদমের (bcrypt/Argon2 MD5 এর তুলনায় কয়েক মাত্রা ধীর), হার্ডওয়্যার এবং অভিধানের মানের উপর। 10 গুণের ভুলতা কিছুই পরিবর্তন করে না; লক্ষপতি গুণের ব্যবধান করে।
প্রকৃতপক্ষে কী ভালো পাসওয়ার্ড তৈরি করে?
দুটি নির্ভরযোগ্য উপায়: পাসওয়ার্ড ম্যানেজার থেকে 16+ অক্ষরের র্যান্ডম স্ট্রিং, প্রতি সাইটের জন্য অনন্য; অথবা 4+ সম্পর্কহীন শব্দের একটি পাসফ্রেজ (যেমন correct-horse-battery-staple) — দীর্ঘ এবং অর্থহীন। আপনি যা বেছে নিন না কেন, তা মাল্টি-ফ্যাক্টর প্রমাণীকরণ (MFA) এর সাথে জুড়ে দিন এবং সাইট জুড়ে একই পাসওয়ার্ড কখনো পুনরায় ব্যবহার করবেন না।
আমার সাইটে বড় অক্ষর/ছোট অক্ষর/অঙ্ক/চিহ্ন প্রয়োজন — কেন কম স্কোর?
কর্পোরেট নীতি (দৈর্ঘ্য, অক্ষর শ্রেণি) একটি প্রবিধানের ভিত্তি: এটি উত্তর দেয় "এটি মেনে চলছে কিনা?"। zxcvbn স্কোর উত্তর দেয় "এটি গেস করা যাবে কিনা?"। এ দুটি স্বাধীন। একটি সাধারণ শব্দের সাথে বিস্ময়বোধক চিহ্ন এবং একটি বছর যোগ করা (password!2024) বেশিরভাগ নীতি পরীক্ষা পাস করে কিন্তু কয়েক সেকেন্ডের মধ্যে অভিধান আক্রমণের শিকার হয়।
আমার পাসওয়ার্ড কোথাও আপলোড করা হয়েছে?
না। সবকিছু আপনার ব্রাউজারে JavaScript এর মাধ্যমে চলে — পাসওয়ার্ড পাঠানোর কোনো নেটওয়ার্ক অনুরোধ নেই, এবং এটি অফলাইনেও কাজ করে। শুধুমাত্র আপনার কাস্টম নীতি (দৈর্ঘ্যের নিয়ম, ব্লকলিস্ট) স্থানীয়ভাবে সংরক্ষণ করা হয়; এতে কখনো পাসওয়ার্ড থাকে না।
কোডে পাসওয়ার্ড শক্তি পরীক্ষা করা
আপনার নিজের সাইনআপ বা পাসওয়ার্ড-পরিবর্তন ফর্মে লাইভ শক্তি পরীক্ষা যোগ করতে, আপনার ভাষার জন্য zxcvbn পোর্ট ব্যবহার করুন:
<!-- CDN -->
<script src="https://unpkg.com/[email protected]/dist/zxcvbn.js"></script>
<script>
const res = zxcvbn('P@ssw0rd!');
console.log(res.score, res.crack_times_display);
</script>
// npm i @zxcvbn-ts/core
import { zxcvbn } from '@zxcvbn-ts/core';
const result = zxcvbn('P@ssw0rd!');
console.log(result.score, result.guesses_log10);
composer require bjeavons/zxcvbn-php
<?php
require __DIR__ . '/vendor/autoload.php';
use ZxcvbnPhp\Zxcvbn;
$zxcvbn = new Zxcvbn();
$res = $zxcvbn->passwordStrength('P@ssw0rd!');
echo $res['score'];
pip install zxcvbn
from zxcvbn import zxcvbn
res = zxcvbn('P@ssw0rd!')
print(res['score'], res['crack_times_display'])
go get github.com/nbutton23/zxcvbn-go
package main
import (
"fmt"
zxcvbn "github.com/nbutton23/zxcvbn-go"
)
func main() {
res := zxcvbn.PasswordStrength("P@ssw0rd!", nil)
fmt.Println(res.Score, res.Guesses)
}
# Add dependency
cargo add zxcvbn
use zxcvbn::zxcvbn;
fn main() {
match zxcvbn("P@ssw0rd!", &[]) {
Ok(estimate) => {
println!("score: {}", estimate.score()); // 0..4
if let Some(times) = estimate.crack_times() {
println!("offline: {:?}", times.offline_slow_hashing_1e4_per_second());
}
}
Err(err) => eprintln!("zxcvbn error: {err}"),
}
}
লাইব্রেরি সংস্করণের উপর নির্ভর করে স্কোর এবং প্যাটার্নের অনুমান এই পৃষ্ঠা থেকে সামান্য ভিন্ন হতে পারে, কিন্তু নীতি একই। সার্ভার-সাইড পরীক্ষার জন্য, দৈর্ঘ্যের সীমা এবং রেট সীমাবদ্ধতা প্রয়োগ করুন যাতে অত্যধিক ইনপুট CPU বার্ন করার জন্য ব্যবহার করা না হয়।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
এই পাসওয়ার্ড শক্তি পরীক্ষক কীভাবে কাজ করে?
এটি zxcvbn ব্যবহার করে, ড্রপবক্সের ওপেন-সোর্স অ্যালগরিদম: পাসওয়ার্ডটি সাধারণ-পাসওয়ার্ড অভিধান, ইংরেজি শব্দ তালিকা, কীবোর্ড ওয়াক, সিকোয়েন্স, তারিখ এবং পুনরাবৃত্তি প্যাটার্নের সাথে মেলানো হয়। আক্রমণকারীর প্রয়োজনীয় গেসের আনুমানিক গড় সংখ্যা 0–4 স্কোর এবং ক্র্যাক-টাইম অনুমানে ম্যাপ করা হয়।
P@ssw0rd জটিল লাগছে — কেন এটি "খুব দুর্বল"?
এটি ব্রেচের কন্টেন্টের সবচেয়ে প্রতীকী দুর্বল পাসওয়ার্ডগুলোর মধ্যে একটি। এটি সরাসরি zxcvbn এর অভিধানে উপস্থিত হয়, এবং বড় অক্ষর প্লাস leet প্রতিস্থাপন (a→@, o→0) স্বয়ংক্রিয়ভাবে স্বীকৃত হয়। সম্পূর্ণভাবে ভবিষ্যদ্বাণীযোগ্য গঠন সহ বিভিন্ন অক্ষর হচ্ছে ঠিক যা নিয়ম-ভিত্তিক আক্রমণকারীর অভিধান প্রথমে চেষ্টা করে।
পাসওয়ার্ডের দৈর্ঘ্য কত হওয়া উচিত?
র্যান্ডমভাবে তৈরি হলে, 12+ অক্ষর সাধারণত অনলাইন আক্রমণকে পরাজিত করে, যেখানে 16+ বছরের জন্য অফলাইন GPU ক্র্যাকিংয়ের প্রতি প্রতিরোধ করে। দৈর্ঘ্য অক্ষর জটিলতার চেয়ে বেশি গুরুত্বপূর্ণ: একটি র্যান্ডম 20-অক্ষরের ছোট অক্ষরের স্ট্রিং চার শ্রেণির মিশ্রিত 10-অক্ষরের স্ট্রিংকে হারায়।
কেন অফলাইন এবং অনলাইন ক্র্যাক টাইম আলাদা?
আক্রমণের পরিস্থিতি ভিন্ন: ডাটাবেস ব্রেচের পর, একজন আক্রমণকারী GPU স্থানীয়ভাবে প্রতি সেকেন্ডে বিলিয়ন গেস করে হ্যাশ চেষ্টা করতে পারেন; লাইভ লগইনের বিরুদ্ধে, রেট সীমাবদ্ধতা প্রতি সেকেন্ডে মুষ্ঠিমাত্রা করার অনুমতি দেয়। একই পাসওয়ার্ড এক পরিস্থিতিতে অন্যের তুলনায় ট্রিলিয়ন গুণ বেশি বেঁচে থাকতে পারে — তাই উভয়ই দেখানো হয়।
আমার ইনপুট কোথাও সংরক্ষণ করা হয়?
না। আপনার পাসওয়ার্ড শুধুমাত্র আপনার ব্রাউজারের মেমরিতে থাকে এবং রিফ্রেশ হলে অদৃশ্য হয়ে যায়। শুধুমাত্র আপনার কাস্টম নীতি সেটিংস (দৈর্ঘ্যের নিয়ম, ব্লকলিস্ট) স্থানীয় স্টোরেজে রাখা হয় — এগুলোতে কখনো পাসওয়ার্ড থাকে না।