افحص الأنماط الضعيفة الشائعة في كلمة المرور
قد تبدو كلمة المرور معقدة، لكنها تتبع نمطًا تجربه أدوات التخمين في مرحلة مبكرة. يكشف هذا الفاحص اختصارات شائعة بوجه خاص، منها السير عبر المفاتيح المتجاورة، وتكرار الحروف أو كتل النص، وإخفاء الكلمات المعروفة باستبدالات مثل وضع الصفر محل الحرف o.
شغّل الأداة مجانًا
يُجري تحليلًا محليًا حتميًا، ولا يتصل صراحةً بأي قاعدة بيانات حقيقية للتسريبات. وتوضح النتيجة كل نمط مكتشف من دون اعتبار غياب التطابق دليلًا على أمان كلمة المرور.
تعرّفوا إلى نطاق فحص الأنماط الشائعة
يركز هذا الفاحص على ثلاث فئات من الاختيارات التي يلجأ إليها الأشخاص لجعل كلمة المرور سهلة التذكر مع منحها مظهرًا معقدًا. يتبع تسلسل لوحة المفاتيح مفاتيح متعاقبة، مثل السير على صف الأرقام أو أحد صفوف حروف QWERTY. ويشمل التكرار كتابة الحرف نفسه ثلاث مرات على الأقل، وكذلك نسخ كتل متعددة الحروف مباشرةً بعد نفسها. أما فحص القاموس فيعيد الاستبدالات المألوفة إلى حروف، ويحذف الفواصل، ثم يبحث في مجموعة صغيرة مدمجة من الكلمات التي يعطيها المهاجمون أولوية عادةً. فاستبدال الحرف a بعلامة @ أو الحرف o بالصفر، مثلًا، لا يجعل الكلمة المعروفة غير قابلة للتوقع. تذكر المخرجات الفئة والمقطع المتطابق كي يقدم التطبيق إرشادًا محددًا بدلًا من رفض مبهم. يؤدي تطابق فئة واحدة إلى خطر نمطي متوسط، وتؤدي فئتان أو أكثر إلى خطر مرتفع. ولا يصف هذا التصنيف إلا الأنماط المدعومة، وليس الوضع الأمني الكامل لكلمة المرور أو قوتها الرياضية.
فسّروا النتيجة النظيفة بالحذر المناسب
تعني النتيجة المنخفضة أن الفاحص لم يعثر على أي نمط من الأنماط المنفذة فيه. ولا تعني أن كلمة المرور قوية أو فريدة أو سرية أو غير موجودة في تسريبات سابقة. تتجنب هذه القدرة عمدًا قواعد بيانات التسريبات المباشرة والمنزلة، ولذلك تكون قيمة `breach_database_checked` دائمًا false. كذلك لا تقدر الإنتروبيا، ولا تحاكي مجموعة قواعد المهاجم كاملة، ولا تفحص إعادة الاستخدام بين الحسابات، ولا تقيم النظام الذي يخزن كلمة المرور. وقد يفلت اسم قصير أو كلمة غير شائعة أو تاريخ أو إشارة شخصية من هذه الاختبارات الثابتة، مع بقائه سهل التخمين. تعاملوا مع النتيجة بوصفها إشارة محددة ضمن سياسة متعددة الطبقات. فضّلوا بيانات اعتماد طويلة مولدة عشوائيًا أو عبارات مرور مؤلفة من عناصر غير مترابطة فعلًا، وامنعوا إعادة الاستخدام حيثما أمكن، وأضيفوا تقييد المحاولات والمصادقة متعددة العوامل، وخزنوا بيانات الاعتماد بدالة حديثة لاشتقاق كلمات المرور. تؤكد التوصية المصاحبة للنتيجة النظيفة هذا الحد بدلًا من منح شهادة أمان مضللة. يتيح هذا التفسير المتحفظ للفرق استخدام الفاحص كأداة تشخيص دقيقة لا كمقياس شامل للقوة.
قدّموا ملاحظات واضحة تراعي الخصوصية
صُممت الاستجابة لتناسب نماذج التسجيل وشاشات تغيير كلمة المرور والتدريب الأمني وأدوات السياسات المحلية. يوفر `common_pattern_detected` تفرعًا بسيطًا لمنطق واجهة المستخدم، بينما يقدم `patterns` الفئة والمقطع المتطابق وشرحًا موجزًا. وهكذا تستطيع الواجهة بيان العثور على تسلسل من لوحة المفاتيح أو أن الاستبدالات ما زالت تكشف كلمة شائعة. تجنبوا تسجيل المدخل أو المقاطع المتطابقة أو الاستجابة الكاملة في تحليلات الإنتاج، لأن حتى أجزاء كلمة المرور بيانات حساسة. شغّلوا إصدار المتصفح المجاني عند الحاجة إلى ملاحظات محلية فورية، أو استدعوا API بتكلفة $0.002 لكل طلب عند دمج مجموعة القواعد الحتمية في تطبيق. تُعد كلمة المرور الفارغة خطأ إدخال بدلًا من نتيجة منخفضة الخطر، فلا تُفهم قيمة النموذج المفقودة على أنها بيانات اعتماد آمنة. ولأن الخوارزمية تستخدم جداول ثابتة من دون شبكة أو عشوائية أو ساعة أو حالة مشتركة، تنتج المدخلات المتطابقة مخرجات متطابقة. تجعل هذه الثبات السياسات قابلة للاختبار، بينما يحافظ المؤشر الصريح لفحص التسريبات على دقة وصف المنتج.
حالات الاستخدام
اشرحوا سبب الرفض عند التسجيل
بيّنوا ما إذا كانت الكلمة المقترحة تتضمن تسلسلًا من لوحة المفاتيح أو تكرارًا أو استبدالًا يسهل عكسه، بدلًا من إرجاع إخفاق غير مفسر في السياسة.
راجعوا أمثلة سياسة كلمات المرور
اختبروا بيانات الاعتماد النموذجية في الإرشادات الداخلية، واحذفوا الأمثلة التي لا تبدو معقدة إلا بسبب رموز وأرقام يمكن توقعها.
أضيفوا إرشادًا محليًا محددًا
شغّلوا الفحوص الحتمية نفسها في المتصفح من دون إرسال الكلمة المقترحة إلى خدمة تسريبات أو الادعاء بعدم وجود تطابق تاريخي.
الأسئلة الشائعة
هل يستعلم هذا الفاحص من قاعدة حقيقية لكلمات المرور المسربة؟
لا. تستخدم الخوارزمية قواعد أنماط محلية ثابتة فقط، وتوضح كل استجابة أنه لم يجر فحص أي قاعدة بيانات للتسريبات.
ما أنماط لوحة المفاتيح التي يكتشفها؟
يكتشف تسلسلات من أربعة مفاتيح متعاقبة على الأقل في الاتجاهين على صف أرقام QWERTY وصفوف الحروف الرئيسية الثلاثة.
ما أنواع التكرار التي يضع عليها علامة؟
يضع علامة على حرف مكرر ثلاث مرات على الأقل، وعلى كتل نصية من حرفين إلى ثمانية أحرف تتكرر مباشرةً.
هل تثبت النتيجة المنخفضة أن كلمة المرور قوية؟
لا. تعني فقط أن الفئات المنفذة لم تُكتشف؛ فهي لا تقيس الإنتروبيا أو التفرد أو سهولة التخمين الشخصي أو التعرض للتسريبات.
ماذا يحدث عندما تكون كلمة المرور فارغة؟
يفشل الطلب بخطأ إدخال غير صالح كي لا تُفسر القيمة المفقودة على أنها نتيجة نظيفة.
ما تكلفة الفحص عبر API؟
تكلف كل مطالبة ناجحة عبر API مبلغ $0.002. ويمكن تشغيل إصدار المتصفح محليًا من دون استدعاء خدمة تسريبات.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/security/password-breach-pattern-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"password":"P@ssw0rd123"}'const res = await fetch("https://api.kit.forhosting.com/security/password-breach-pattern-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"password": "P@ssw0rd123"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/security/password-breach-pattern-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"password": "P@ssw0rd123"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/security/password-breach-pattern-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"password":"P@ssw0rd123"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"password":"P@ssw0rd123"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/security/password-breach-pattern-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"password": "P@ssw0rd123"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "security.password_breach_pattern_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |