ToolDeck

مولد كلمات المرور

أنشئ كلمات مرور عشوائية قوية بطول وأنماط أحرف قابلة للتخصيص

الطول20
العدد5

ما هو مولِّد كلمات المرور؟

مولِّد كلمات المرور هو أداة تُنشئ سلاسل عشوائية من الأحرف تُستخدم كلمات مرور لحسابات المستخدمين ومفاتيح API وبيانات اعتماد قواعد البيانات والأسرار التشفيرية. على خلاف كلمات المرور التي يختارها البشر، تستمد كلمات المرور المُولَّدة من الفضاء الكامل للتركيبات الممكنة من الأحرف، مما يجعلها مقاومة لهجمات القاموس والتخمين القائم على الأنماط. تُولِّد هذه الأداة كلمات مرور قوية عشوائية عبر الإنترنت باستخدام مولِّد الأرقام العشوائية التشفيري المدمج في متصفحك.

تعتمد قوة كلمة المرور على عاملين: الطول وتنوع الأحرف. تمتلك كلمة مرور مكوَّنة من 20 حرفاً تجمع بين الأحرف الكبيرة والصغيرة والأرقام والرموز ما يقارب 131 بت من الانتروبيا. عند هذا المستوى، يحتاج هجوم القوة الغاشمة الذي يختبر تريليون تخمين في الثانية إلى وقت أطول من عمر الكون لتجربة كل التركيبات. المعادلة بسيطة: الانتروبيا = الطول × log2(حجم مجموعة الأحرف).

توصي معايير مثل NIST SP 800-63B بكلمات مرور لا تقل عن 8 أحرف دون حد أقصى تفرضه جهة التحقق، وتُحبِّط قواعد التركيب الإجبارية كاشتراط رمز واحد بالضبط، مفضِّلةً عبارات مرور أطول. بالنسبة لبيانات اعتماد من آلة إلى آلة وحسابات الخدمة، يُعدّ 20 حرفاً عشوائياً أو أكثر مستمدةً من مجموعة أحرف كاملة الحد الأدنى المقبول في معظم أُطر الأمان وأنظمة الامتثال.

لماذا تستخدم مولِّد كلمات المرور؟

البشر ضعاف في توليد الأرقام العشوائية. نُعيد استخدام كلمات المرور، ونختار كلمات من القاموس، ونستبدل الأحرف بأنماط متوقعة (@ بدلاً من a، و3 بدلاً من e)، ونميل تلقائياً إلى اختيار كلمات مرور قصيرة. يُزيل مولِّد كلمات المرور التحيز البشري من هذه العملية.

🔐
توليد يضمن خصوصيتك
تُولَّد كلمات المرور بالكامل في متصفحك باستخدام Web Crypto API. لا يغادر أي حرف جهازك، ولا يُسجَّل شيء، ولا تُجرى أي طلبات شبكة أثناء التوليد.
توليد دُفعي فوري
ولِّد ما يصل إلى 20 كلمة مرور بنقرة واحدة. انسخ كلمات المرور بشكل فردي أو جميعها دفعةً واحدة لنصوص الإعداد أو خزائن بيانات الاعتماد.
🛡️
لا حاجة إلى حساب
لا تسجيل، لا بريد إلكتروني، ولا ملفات تعريف ارتباط تتتبع كلمات مرورك المُولَّدة. افتح الصفحة، اضبط خياراتك، وولِّد.
🎛️
تحكم كامل في مجموعة الأحرف
فعِّل الأحرف الكبيرة والصغيرة والأرقام والرموز بشكل مستقل. اضبط الطول من 4 إلى 128 حرفاً لتتوافق مع متطلبات أي نظام أو سياسة.

حالات استخدام مولِّد كلمات المرور

تطوير الواجهة الأمامية
ولِّد كلمات مرور اختبارية للتحقق من صحة النماذج واختبار طول المدخلات وتطوير تدفق المصادقة. تحقق من أن نماذج تسجيل الدخول لديك تتعامل بشكل صحيح مع كلمات المرور المكوَّنة من 128 حرفاً والأحرف الخاصة.
الواجهة الخلفية وDevOps
أنشئ بيانات اعتماد قواعد البيانات وكلمات المرور لمفاتيح API وحسابات الخدمة أثناء إعداد البنية التحتية. استخدم التوليد الدُّفعي لإعداد خدمات متعددة في جلسة واحدة.
هندسة الأمن
ولِّد أسراراً عالية الانتروبيا لمفاتيح التشفير وتوقيع HMAC وتدوير أسرار JWT. اضبط الطول على 64 حرفاً أو أكثر للأسرار التي يجب أن تتجاوز 256 بت من الانتروبيا.
اختبار الجودة واختبار الاختراق
اختبر تطبيق سياسة كلمات المرور عن طريق توليد سلاسل تتضمن مجموعات أحرف معينة أو تستبعدها. تحقق من أن الأنظمة ترفض بشكل صحيح كلمات المرور التي تقل عن الحد الأدنى للطول أو التعقيد.
هندسة البيانات
ولِّد بيانات اعتماد عشوائية لبيئات الاختبار وقواعد البيانات التجريبية وأسرار CI/CD pipeline. تجنَّب إعادة استخدام كلمات المرور الإنتاجية في بيانات الاختبار عن طريق توليد كلمات جديدة لكل بيئة.
أمان الحساب الشخصي
أنشئ كلمات مرور فريدة لكل حساب إلكتروني. اقرن هذا المولِّد بمدير كلمات المرور لتخزين بيانات الاعتماد التي لا تحتاج إلى حفظها.

مرجع انتروبيا كلمات المرور

تقيس الانتروبيا مدى عدم قابلية كلمة المرور للتنبؤ. تُحسب بالصيغة log2(حجم_مجموعة_الأحرف ^ الطول). تعني الانتروبيا الأعلى مزيداً من التركيبات الممكنة التي يحتاج المهاجم إلى استعراضها. توصي NIST وOWASP بما لا يقل عن 80 بت من الانتروبيا للتطبيقات عالية الأمان.

الطولمجموعة الأحرفالانتروبياوقت الاختراق بالقوة الغاشمة
8lower + digits~41 bitsMinutes to hours
12lower + upper + digits~71 bitsCenturies (offline)
16all character sets~105 bitsBeyond brute-force
20all character sets~131 bitsBeyond brute-force
32all character sets~210 bitsBeyond brute-force
64all character sets~419 bitsBeyond brute-force

تفترض أوقات الاختراق تريليون تخمين في الثانية (هجوم غير متصل بالإنترنت مع وحدات GPU حديثة). الهجمات المتصلة بالإنترنت مع تحديد المعدل أبطأ بمراتب.

CSPRNG مقابل Math.random() لتوليد كلمات المرور

مصدر العشوائية لا يقل أهميةً عن طول كلمة المرور. يمكن إعادة بناء كلمة المرور المُولَّدة بمولِّد أرقام عشوائية قابل للتنبؤ من قِبل مهاجم يعرف الخوارزمية وحالة البذرة. تستخدم هذه الأداة crypto.getRandomValues()، وهو مولِّد أرقام عشوائية زائفة آمن تشفيرياً (CSPRNG) مُدمج في كل متصفح حديث.

crypto.getRandomValues()
يستخدم مصادر انتروبيا نظام التشغيل (RNG للأجهزة، وتوقيت المقاطعات، إلخ). المخرجات غير قابلة للتنبؤ حتى لو عرف المهاجم جميع المخرجات السابقة. مطلوب بموجب مواصفة W3C Web Crypto للعمليات الحساسة أمنياً.
Math.random()
يستخدم خوارزمية حتمية تعتمد على مجموعة انتروبيا محدودة. يمكن التنبؤ بالمخرجات إذا كانت حالة البذرة معروفة. تُصرِّح مواصفة ECMAScript صراحةً بأن Math.random() لا يوفر أرقاماً عشوائية آمنة تشفيرياً. لا تستخدمه أبداً لتوليد كلمات المرور.

أمثلة برمجية

ولِّد كلمات المرور برمجياً بلغات مختلفة. يستخدم كل مثال أدناه مصدراً عشوائياً آمناً تشفيرياً، لا Math.random() أو ما يعادله من PRNGs الضعيفة.

JavaScript (Web Crypto API)
// Generate a random password in the browser or Node.js 19+
function generatePassword(length = 20) {
  const charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*'
  const values = new Uint32Array(length)
  crypto.getRandomValues(values)
  return Array.from(values, v => charset[v % charset.length]).join('')
}

console.log(generatePassword())    // → "kR7!mZp$Xw2&nLq9@Yf3"
console.log(generatePassword(32))  // → "Hd4%tNx!Qw8#mKp2Rv6&Zj0*Ls3Yb7@"
Python
import secrets
import string

def generate_password(length: int = 20) -> str:
    """Generate a cryptographically secure random password."""
    alphabet = string.ascii_letters + string.digits + string.punctuation
    return ''.join(secrets.choice(alphabet) for _ in range(length))

# Single password
print(generate_password())      # → "kR7!mZp$Xw2&nLq9@Yf3"

# Batch of 5 passwords
for _ in range(5):
    print(generate_password(24))

# Ensure at least one char from each category
def generate_strong(length: int = 20) -> str:
    required = [
        secrets.choice(string.ascii_uppercase),
        secrets.choice(string.ascii_lowercase),
        secrets.choice(string.digits),
        secrets.choice(string.punctuation),
    ]
    remaining = length - len(required)
    alphabet = string.ascii_letters + string.digits + string.punctuation
    all_chars = required + [secrets.choice(alphabet) for _ in range(remaining)]
    secrets.SystemRandom().shuffle(all_chars)
    return ''.join(all_chars)
CLI (OpenSSL / /dev/urandom)
# OpenSSL — generate 32 random bytes, base64-encode
openssl rand -base64 32
# → "x7Kp2mNqR4wZ8vLs1Yb0Hd6tFj3Xc9Ga5eUi+Wo="

# /dev/urandom with tr — alphanumeric + symbols, 20 chars
tr -dc 'A-Za-z0-9!@#$%^&*' < /dev/urandom | head -c 20; echo
# → "kR7!mZp$Xw2&nLq9@Yf3"

# pwgen (install: apt install pwgen / brew install pwgen)
pwgen -sy 20 5
# Generates 5 passwords, 20 chars each, with symbols
Go
package main

import (
    "crypto/rand"
    "fmt"
    "math/big"
)

func generatePassword(length int) (string, error) {
    charset := "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()"
    result := make([]byte, length)
    for i := range result {
        idx, err := rand.Int(rand.Reader, big.NewInt(int64(len(charset))))
        if err != nil {
            return "", err
        }
        result[i] = charset[idx.Int64()]
    }
    return string(result), nil
}

func main() {
    pwd, _ := generatePassword(20)
    fmt.Println(pwd) // → "kR7!mZp$Xw2&nLq9@Yf3"
}

الأسئلة الشائعة

ما الطول المثالي لكلمة المرور؟
لحسابات المستخدمين، يوفر 16 حرفاً من مجموعة أحرف مختلطة أكثر من 100 بت من الانتروبيا، وهو كافٍ لجميع نماذج التهديد الحالية. للأسرار الآلية (مفاتيح API، ومفاتيح التشفير)، استخدم 32 حرفاً أو أكثر. تحدد NIST SP 800-63B حداً أدنى يبلغ 8 أحرف لكنها توصي بالسماح بكلمات مرور أطول بكثير دون اقتطاع.
هل استخدام مولِّد كلمات المرور هذا آمن؟
نعم. تُولَّد كلمات المرور في متصفحك باستخدام Web Crypto API (crypto.getRandomValues). لا تُرسَل أي بيانات إلى أي خادم. يمكنك التحقق من ذلك بفتح علامة تبويب الشبكة في متصفحك ومراقبة عدم إجراء أي طلبات عند النقر على توليد. الكود المصدري هو JavaScript من جانب العميل، مرئي في أدوات المطور في متصفحك.
ما هي انتروبيا كلمة المرور؟
الانتروبيا هي مقياس للعشوائية يُعبَّر عنه بالبتات. كلمة مرور ذات N بت من الانتروبيا لها 2^N قيمة ممكنة. على سبيل المثال، كلمة مرور مكوَّنة من 20 حرفاً مستمدة من 95 حرفاً ASCII قابلاً للطباعة لها log2(95^20) = 131.1 بت من الانتروبيا. كل بت إضافي يضاعف عدد التخمينات التي يحتاجها المهاجم.
هل يجب تضمين الرموز في كلمات المرور؟
يزيد تضمين الرموز مجموعة الأحرف من 62 (أحرف وأرقام) إلى 95 (ASCII القابل للطباعة)، مما يضيف حوالي 6.1 بت من الانتروبيا لكل حرف. بعض الأنظمة تقيِّد الرموز المسموح بها. إذا رفض النظام رموزاً معينة، عطِّل خيار الرموز وعوِّض بكلمة مرور أطول. كلمة مرور أبجدية رقمية مكوَّنة من 24 حرفاً تمتلك انتروبيا أعلى من كلمة مرور مكوَّنة من 16 حرفاً مع رموز.
لماذا لا تستخدم Math.random() لتوليد كلمات المرور؟
Math.random() ليست آمنة تشفيرياً. تُنفِّذ معظم محركات JavaScript باستخدام xorshift128+ أو PRNG سريع مماثل مصمم للمحاكاة والألعاب، لا للأمان. يمكن للمهاجم الذي يرصد بضعة مخرجات استعادة الحالة الداخلية والتنبؤ بجميع المخرجات المستقبلية. تستخدم Web Crypto API مصادر انتروبيا نظام التشغيل غير القابلة للتنبؤ.
هل يمكنني استخدام كلمات المرور المُولَّدة لمفاتيح API والرموز؟
نعم، لكن ضع في الاعتبار متطلبات التنسيق لنظامك المستهدف. بعض واجهات API تتوقع مفاتيح مشفَّرة بـBase64 أو سلاسل سداسية عشرية بدلاً من أحرف اعتباطية. لتوليد الأسرار الخام، استخدم مجموعة الأحرف الكاملة بطول 32 حرفاً أو أكثر. لمفاتيح Base64، ولِّد بايتات عشوائية وشفِّرها بشكل منفصل بدلاً من التعامل مع Base64 كمجموعة أحرف لكلمات المرور.
كم مرة يجب تدوير كلمات المرور؟
توصي NIST SP 800-63B (2017، محدَّثة 2024) بعدم فرض التدوير الدوري الإلزامي لكلمات مرور المستخدمين لأنه يؤدي إلى اختيارات كلمات مرور أضعف. دوِّر فقط عند وجود دليل على الاختراق. لأسرار الآلات وحسابات الخدمة، دوِّر بناءً على نموذج المخاطر لمنظمتك، عادةً كل 90 يوماً لبيانات الاعتماد عالية الامتياز.