مقياس قوة كلمات المرور
تحليل في الوقت الفعلي بمحرك zxcvbn: قواميس كلمات المرور الشائعة، تسلسلات لوحة المفاتيح، التتابعات، التكرارات والتواريخ تقلل نقاطك — مقياس أمن أدق بكثير من إحصاء فئات الأحرف الصغيرة/الكبيرة/الأرقام/الرموز. كل شيء يعمل محليًا؛ كلمة مرورك لا تغادر المتصفح أبدًا.
- المحرك
- zxcvbn
- النتيجة
- مقياس من 0 إلى 4
- الخصوصية
- لا يتم تحميلها أبدًا
- القاموس
- كلمات مرور شائعة مدمجة
إعدادات السياسة المتقدمة
مفصولة بفواصل أو أسطر جديدة، غير حساسة لحالة الأحرف. يكتشف zxcvbn تلقائيًا أشكال الحروف المتغيرة، والاستبدالات باللغة النقطية (مثل Pa$$w0rd) وعمليات العكس.
مقارنة بين كلمتي مرور
لماذا يهم هذا
لماذا "أحرف كبيرة + صغيرة + رقم + رمز" ليست أمانًا
كلمة المرور P@ssw0rd! تلبي جميع شروط الأحرف الأربعة ولا تزال تتصدر قوائم الاختراقات الفعلية. القوة تكمن في عدم قابلية التخمين، لا في الحساب البسيط لفئات الأحرف.
مطابقة كلمات المرور الضعيفة
يتم معاقبة القاموس المدمج لكلمات المرور والكلمات الشائعة بشدة - وكلمة المرور و 123456 و P@ssw0rd تحصل جميعها على تقييم ضعيف جدًا بشكل صحيح.
كشف الأنماط
التنقلات على لوحة المفاتيح، والتسلسلات المستقيمة، والتكرارات، والتواريخ، والكلمات الشائعة كلها تقلل من مساحة التخمين الفعلية.
إنتروبيا فعالة وليس نظرية
التقييم يقدر التخمينات الفعلية بناءً على الهياكل الموجودة - لا حجم مجموعة الأحرف مضروبًا في الطول.
سيناريوهات هجوم اثنتان
تقديرات منفصلة لاختراق GPU غير متصل والتخمين المحدد بمعدل عبر الإنترنت تساعد على فهم تكلفة المهاجم.
سياسة مخصصة وقائمة حظر
حدد الحد الأدنى للطول ومتطلبات الفئات؛ أضف أسماء الشركات أو أسماء الرموز للمشاريع لتتوافق مع قواعد كلمات المرور الخاصة بالشركة.
محلي بالكامل
كلمة المرور الخاصة بك لا تغادر المتصفح أبدًا ولا تلمس خادمًا؛ الإعدادات توجد فقط في التخزين المحلي الخاص بك.
فهم قوة كلمة المرور
كيف يعمل نظام التقييم، ماذا تعني أوقات الاختراق، وما الذي يجعل كلمة المرور جيدة بالفعل.
كيف يتم حساب تقييم 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، الخوارزمية مفتوحة المصدر من Dropbox: يتم مطابقة كلمة المرور مع قواميس كلمات المرور الشائعة، وقوائم كلمات اللغة الإنجليزية، والمرورات على لوحة المفاتيح، والتسلسلات، والتواريخ وأنماط التكرار. يتم تعيين العدد المتوسط المقدر من التخمينات التي يحتاجها المهاجم إلى درجة من 0 إلى 4 وتقديرات وقت الاختراق.
P@ssw0rd تبدو معقدة — لماذا هي "ضعيفة جداً"؟
إنها واحدة من أشهر كلمات المرور الضعيفة في مجموعات البيانات المخترقة. تظهر مباشرة في قواميس zxcvbn، ويتم التعرف تلقائياً على الأحرف الكبيرة والبدائل leet (a→@, o→0). الأحرف المتنوعة مع هيكل قابل للتنبؤ به تماماً هو بالضبط ما تحاول هجمات القواميس القائمة على القواعد تجربتها أولاً.
ما طول كلمة المرور التي يجب أن تكون؟
عند إنشائها عشوائياً، 12 حرفاً أو أكثر تهزم عادة الهجمات عبر الإنترنت، بينما 16 حرفاً أو أكثر تصمد أمام فك تشفير GPU غير متصل بالإنترنت لسنوات عديدة. الطول أهم من تعقيد الأحرف: سلسلة عشوائية من 20 حرفاً صغيراً تتغلب على سلسلة من 10 أحرف تمزج بين الفئات الأربع جميعها.
لماذا يتم فصل أوقات الاختراق غير المتصلة والمتصلة؟
سيناريوهات الهجوم تختلف: بعد اختراق قاعدة البيانات، يمكن للمهاجم تجزئة التجزئات محلياً على وحدات معالجة الرسوميات (GPU) بمليارات التخمينات في الثانية؛ ضد تسجيل دخول مباشر، يسمح تقييد المعدل ببضعة تخمينات فقط في الثانية. نفس كلمة المرور يمكنها البقاء على قيد الحياة أطول بمليار مرة في سيناريو واحد من الآخر — لذلك يتم عرض كليهما.
هل يتم تخزين مدخلاتي في أي مكان؟
لا. كلمة المرور الخاصة بك تعيش فقط في ذاكرة متصفحك وتختفي عند التحديث. فقط إعدادات السياسة المخصصة الخاصة بك (قواعد الطول، القائمة السوداء) محفوظة في التخزين المحلي — لا تحتوي أبداً على كلمة مرور.