پاس ورڈ اسٹرینگ چیکر
zxcvbn انجن کے ساتھ حقیقی وقت کا تجزیہ: عام پاس ورڈ ڈکشنریز، کی بورڈ واکز، سیکوینسز، تکرار اور تاریخ آپ کے پوائنٹس کو کم کرتے ہیں - یہ سیکیورٹ کا واقعی بہتر انداز ہے جو اوپر/لوور/ڈیجیٹ/سیمبل کلاسز کو شمار کرنے سے کہیں بہتر ہے۔ ہر چیز مقامی طور پر چلتی ہے؛ آپ کا پاس ورڈ کبھی بھی براؤزر سے باہر نہیں جاتا۔
- انجن
- zxcvbn
- اسکور
- 0–4 پیمانہ
- رازداری
- کبھی اپ لوڈ نہیں ہوتا
- ڈکشنری
- بلٹ ان عام پاس ورڈز
اعلی درجے کی پالیسی ترتیبات
کوما یا نئی لائن سے الگ کریں، کیس سے قطع نظر۔ zxcvbn خود بخود کیس کے تغیرات، لیٹ متبادلات (مثال: Pa$$w0rd) اور الٹ پلٹ پکڑ لیتا ہے۔
دو پاس ورڈز موازنہ کریں
یہ کیوں اہم ہے
"اوپر + چھوٹا + عدد + علامت" حفاظت نہیں
P@ssw0rd! تمام چار حروف کی شرط پورا کرتا ہے پھر بھی حقیقی ڈیٹا رساو کی فہرستوں میں سرفہرست ہے۔ طاقت اندازہ لگایا جانے کی صلاحیت کے بارے میں ہے، نہ کہ حروف کی کلاسز کا حساب۔
کمزور پاس ورڈ کا مقابلہ
عام پاس ورڈز اور الفاظ کی بلٹ ان ڈکشنری کو بہت زیادہ سزا دی جاتی ہے — password, 123456 اور P@ssw0rd کو درست طریقے سے بہت کمزور کے درجے میں رکھا جاتا ہے۔
پیٹرن کی پہچان
کی بورڈ کے راستے، سیدھی ترتیبیں، دہرائی جانے والے حروف، تاریخیں اور عام الفاظ سب مؤثر اندازہ لگایا جانے کی جگہ کو کم کر دیتے ہیں۔
حقیقی، نہ کہ نظریاتی انٹراپی
اسکور structures پائے جانے والے structures سے حقیقی اندازوں کا اندازہ لگاتا ہے — نہ کہ حروف کے سیٹ کا لمبائی سے ضرب۔
دو حملے کے منظرنامے
آف لائن GPU کریکنگ اور آن لائن ریٹ لمٹڈ اندازہ لگانے کے لیے الگ الگ اندازے حملہ آور کی لاگت کے بارے میں سمجھ بنا دیتے ہیں۔
اپنی مرضی کی پالیسی اور بلاک لسٹ
کم از کم لمبائی اور کلاس کی شرائط مقرر کریں؛ کمپنی کے پاس ورڈ کے قواعد سے ملنے کے لیے کمپنی کے نام یا پروجیکٹ کے کوڈ نامز شامل کریں۔
مکمل طور پر مقامی
آپ کا پاس ورڈ کبھی بھی براؤزر سے باہر نہیں جاتا یا سرور سے رابطہ نہیں کرتا؛ ترتیبات صرف آپ کے اپنے localStorage میں رہتی ہیں۔
پاس ورڈ کی طاقت کو سمجھنا
اسکورنگ کیسے کام کرتی ہے، کرک کے اوقات کا کیا مطلب ہے، اور درحقیقت اچھا پاس ورڈ کیا بناتا ہے۔
zxcvbn کا 0–4 اسکور کیسے شمار کیا جاتا ہے؟
zxcvbn پہلے پاس ورڈ کو ٹکڑوں میں تقسیم کرتا ہے: ڈکشنری کے الفاظ (عام پاس ورڈز، انگریزی الفاظ)، کی بورڈ کے راستے، ترتیبیں، دہرائے جانے والے حروف، تاریخیں اور بریٹ فورس کے ٹکڑے۔
یہ ہر ٹکڑے کے اندازوں کا تخمینہ لگاتا ہے، انہیں کل اندازوں کی تعداد میں ملاتا ہے، اور اسے 0–4 اسکور میں نقشہ بنا دیتا ہے۔ عام تبدیلیاں خود بخود شامل کی جاتی ہیں — کیس کا الٹ پلٹ، لیٹ متبادل (@→a, 0→o)، سال کے لاحقے — اسی وجہ سے P@ssw0rd اپنے حروف کی قسم کے باوجود کمزور اسکور کرتا ہے۔
حقیقی انٹراپی اور حروف کے سیٹ کے سائز میں کیا فرق ہے؟
حروف کے سیٹ کا سائز حروف تہجی کے سائز کو لمبائی سے ضرب دیتا ہے — ایک نظریاتی چوٹی جس کے تحت ہر حرف مکمل طور پر بے ترتیب مانتا ہے، جیسا کہ حقیقی پاس ورڈز عملی طور پر کبھی نہیں ہوتے۔
حقیقی انٹراپی (یہاں دکھائی جانے والی بٹ کی تعداد) وہ حقیقی اندازہ لگایا جانے کی جگہ ہے جس کا اندازہ zxcvbn ڈکشنری کے الفاظ اور پیٹرنز ملنے کے بعد لگاتا ہے۔ ایک ہی لمبائی پر، iloveyou2024 کا حقیقی انٹراپی ایک بے ترتیب سٹرنگ سے کہیں کم ہے۔
کرک کے اوقات کا اندازہ کیسے لگایا جاتا ہے — کیا یہ قابل اعتماد ہیں؟
کریک ٹائم = تخمینی اندازے فی سیکنڈ اندازے ÷. دو رفتاریں دکھائی گئی ہیں: آف لائن GPU فارم کے لیے ~10 بلین/سیکنڈ (حملہ آور کے پاس ہیش ہوتا ہے)، اور آن لائن ریٹ لمٹڈ لاگ ان کے لیے ~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 کو ختم کرنے کے لیے استعمال نہ ہو سکیں۔
اکثر پوچھے جانے والے سوالات
یہ پاس ورڈ طاقت چیکر کیسے کام کرتا ہے؟
یہ Dropbox کا اوپن سورس الگورتھم zxcvbn استعمال کرتا ہے: پاس ورڈ کو عام پاس ورڈ ڈکشنری، انگریزی الفاظ کی فہرست، کی بورڈ واک، سیکوئنس، تاریخ اور دہرانے والے پیٹرن کے خلاف موازنہ کیا جاتا ہے۔ حملہ آور کو درکار اندازوں کی تخمینی اوسط تعداد 0–4 اسکور اور کریک ٹائم کے تخمینے میں تبدیل کی جاتی ہے۔
P@ssw0rd پیچیدہ لگتا ہے — یہ "بہت کمزور" کیوں ہے؟
یہ بریک کورپورا کی سب سے زیادہ مشہور کمزور پاس ورڈوں میں سے ایک ہے۔ یہ zxcvbn کی ڈکشنری میں براہ راست ظاہر ہوتا ہے، اور کیپٹلائزیشن کے ساتھ ساتھ لیٹ متبادل (a→@, o→0) خود بخود پہچانے جاتے ہیں۔ مکمل طور پر متوقع ساخت کے ساتھ مختلف حروف بالکل وہی چیز ہے جو قاعدہ پر مبنی حملہ آور ڈکشنری پہلے آزماتے ہیں۔
پاس ورڈ کتنا لمبا ہونا چاہیے؟
تصادفی طور پر پیدا ہونے پر، 12+ حروف عام طور پر آن لائن حملوں کو شکست دیتے ہیں، جبکہ 16+ حروف آف لائن GPU کریکنگ کو کئی سالوں تک برداشت کرتے ہیں۔ لمبائی کریکٹر کی پیچیدگی سے زیادہ اہم ہے: ایک تصادفی 20 حروف کا لوئر کیس اسٹرنگ چاروں کلاسوں کے 10 حروف کے مکس سے بہتر ہے۔
آف لائن اور آن لائن کریک �ائم کو الگ کیوں دکھایا گیا ہے؟
حملے کے منظر نامے مختلف ہوتے ہیں: ڈیٹا بیس کی خلاف ورزی کے بعد، حملہ آور GPUs پر مقامی طور پر ہیشز کو سیکنڈ میں اربوں اندازوں پر آزما سکتا ہے؛ لائیو لاگ ان کے خلاف، ریٹ لمٹنگ سیکنڈ میں صرف چند کو ہی اجازت دیتی ہے۔ ایک ہی پاس ورڈ ایک منظر نامے میں دوسرے کے مقابلے میں ٹریلین گنا زیادہ وقت تک زندہ رہ سکتا ہے — اس لیے دونوں دکھائے جاتے ہیں۔
کیا میرے ان پٹ کہیں محفوظ ہوتے ہیں؟
نہیں۔ آپ کا پاس ورڈ صرف آپ کے براؤزر کی میموری میں رہتا ہے اور ریفریش پر غائب ہو جاتا ہے۔ صرف آپ کی اپنی پالیسی کی ترتیبات (لمبائی کے قواعد، بلاک لسٹ) مقامی اسٹوریج میں رکھی جاتی ہیں — ان میں کبھی پاس ورڈ شامل نہیں ہوتا۔