القائمة الرئيسية

الصفحات

كيفية إنشاء مولد كلمات مرور احترافي باستخدام HTML و CSS و JavaScript

أصبحت كلمات المرور القوية من أهم وسائل حماية الحسابات والمعلومات الشخصية على الإنترنت، ولذلك يفضل الكثير من المستخدمين استخدام مولد كلمات مرور لإنشاء كلمات مرور عشوائية وآمنة يصعب تخمينها أو اختراقها.

في هذا المقال سنتعرف على كيفية إنشاء مولد كلمات مرور احترافي باستخدام HTML و CSS و JavaScript فقط، دون الحاجة إلى أي مكتبات معقدة أو إطار عمل إضافي.

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

مولد كلمات المرور هو أداة تقوم بإنشاء كلمات مرور عشوائية بناءً على مجموعة من الخيارات التي يحددها المستخدم، مثل:

  • طول كلمة المرور.
  • استخدام الأحرف الكبيرة.
  • استخدام الأحرف الصغيرة.
  • استخدام الأرقام.
  • استخدام الرموز الخاصة.

كلما زاد تنوع الأحرف وطول كلمة المرور، زادت درجة الأمان والحماية.

تصميم واجهة المستخدم

تم تصميم واجهة الموقع باستخدام HTML و Tailwind CSS للحصول على مظهر حديث ومتجاوب مع جميع الأجهزة.

تتكون الواجهة من:

  • حقل لعرض كلمة المرور الناتجة.
  • زر لنسخ كلمة المرور.
  • شريط لتحديد طول كلمة المرور.
  • خيارات لاختيار أنواع الأحرف.
  • مؤشر يوضح قوة كلمة المرور.
  • زر لإنشاء كلمة مرور جديدة.

إنشاء كلمة المرور باستخدام JavaScript

تعتمد عملية التوليد على جمع الأحرف المسموح بها في متغير واحد ثم اختيار أحرف عشوائية منه حتى الوصول إلى الطول المطلوب.

على سبيل المثال:

  • الأحرف الكبيرة: A-Z
  • الأحرف الصغيرة: a-z
  • الأرقام: 0-9
  • الرموز: !@#$%^&*

بعد ذلك يتم اختيار أحرف عشوائية باستخدام الدالة Math.random().

قياس قوة كلمة المرور

يتم حساب قوة كلمة المرور بناءً على:

  • طول كلمة المرور.
  • وجود أحرف كبيرة.
  • وجود أحرف صغيرة.
  • وجود أرقام.
  • وجود رموز.

ثم يتم عرض النتيجة للمستخدم على شكل مؤشر مرئي يوضح ما إذا كانت كلمة المرور ضعيفة أو متوسطة أو قوية.

ميزة النسخ السريع

لتحسين تجربة المستخدم تم إضافة زر يسمح بنسخ كلمة المرور مباشرة إلى الحافظة باستخدام:

navigator.clipboard.writeText()

وبذلك يمكن للمستخدم استخدام كلمة المرور فوراً دون الحاجة إلى تحديدها ونسخها يدوياً.

فوائد إنشاء موقع مولد كلمات مرور

يعتبر هذا النوع من المواقع من أفضل المشاريع الصغيرة لتحقيق الأرباح من الإعلانات لأنه:

  • مطلوب بكثرة في محركات البحث.
  • سهل التطوير والصيانة.
  • سريع التحميل.
  • مناسب لإضافة إعلانات البنر.
  • يمكن إضافة أدوات أخرى مشابهة مستقبلاً.

خاتمة

إنشاء مولد كلمات مرور باستخدام HTML و CSS و JavaScript يعد مشروعاً ممتازاً للمبتدئين والمحترفين على حد سواء. كما يمكن تطويره بإضافة مزايا متقدمة مثل إنشاء كلمات مرور قابلة للنطق أو حفظ السجل أو تقييم قوة كلمات المرور الحالية.

إذا كنت ترغب في إنشاء موقع أدوات مجانية والربح منه عب

الكود 

<!DOCTYPE html><html lang="ar" dir="rtl"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>مولد كلمات المرور الاحترافي</title>
<script src="https://cdn.tailwindcss.com"></script>
<style>body{    background: linear-gradient(135deg,#0f172a,#1e293b,#0f172a);}
.glass{    backdrop-filter: blur(15px);    background: rgba(255,255,255,0.08);    border:1px solid rgba(255,255,255,0.1);}
.glow{    box-shadow: 0 0 30px rgba(59,130,246,.3);}</style></head><body class="min-h-screen flex items-center justify-center p-5">
<div class="glass glow w-full max-w-xl rounded-3xl p-8 text-white">
    <div class="text-center mb-8">        <h1 class="text-4xl font-bold mb-2">            🔐 مولد كلمات المرور        </h1>        <p class="text-slate-300">            أنشئ كلمات مرور قوية وآمنة بضغطة زر        </p>    </div>
    <div class="mb-6">        <label class="block mb-3 font-semibold">            كلمة المرور        </label>
        <div class="flex gap-2">            <input                id="password"                type="text"                readonly                class="flex-1 bg-slate-800 border border-slate-700 rounded-xl p-4 outline-none text-lg"            >
            <button                id="copyBtn"                class="bg-blue-600 hover:bg-blue-700 px-5 rounded-xl transition"            >                نسخ            </button>        </div>    </div>
    <div class="mb-6">        <div class="flex justify-between mb-2">            <span>طول كلمة المرور</span>            <span id="lengthValue">16</span>        </div>
        <input            id="length"            type="range"            min="6"            max="50"            value="16"            class="w-full"        >    </div>
    <div class="grid grid-cols-2 gap-4 mb-8">
        <label class="flex items-center gap-2">            <input id="uppercase" type="checkbox" checked>            أحرف كبيرة        </label>
        <label class="flex items-center gap-2">            <input id="lowercase" type="checkbox" checked>            أحرف صغيرة        </label>
        <label class="flex items-center gap-2">            <input id="numbers" type="checkbox" checked>            أرقام        </label>
        <label class="flex items-center gap-2">            <input id="symbols" type="checkbox" checked>            رموز        </label>
    </div>
    <div class="mb-6">        <div class="flex justify-between mb-2">            <span>قوة كلمة المرور</span>            <span id="strengthText">قوية</span>        </div>
        <div class="bg-slate-700 h-3 rounded-full overflow-hidden">            <div id="strengthBar"                 class="bg-green-500 h-full w-full transition-all duration-300">            </div>        </div>    </div>
    <button        id="generateBtn"        class="w-full bg-gradient-to-r from-blue-500 to-cyan-500 hover:scale-105 transition-all duration-300 py-4 rounded-xl text-lg font-bold"    >        ✨ إنشاء كلمة مرور جديدة    </button>
</div>
<script>const passwordField = document.getElementById("password");const generateBtn = document.getElementById("generateBtn");const copyBtn = document.getElementById("copyBtn");
const lengthSlider = document.getElementById("length");const lengthValue = document.getElementById("lengthValue");
const uppercase = document.getElementById("uppercase");const lowercase = document.getElementById("lowercase");const numbers = document.getElementById("numbers");const symbols = document.getElementById("symbols");
const strengthBar = document.getElementById("strengthBar");const strengthText = document.getElementById("strengthText");
lengthSlider.addEventListener("input", () => {    lengthValue.textContent = lengthSlider.value;});
function generatePassword() {
    let chars = "";
    if (uppercase.checked)        chars += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    if (lowercase.checked)        chars += "abcdefghijklmnopqrstuvwxyz";
    if (numbers.checked)        chars += "0123456789";
    if (symbols.checked)        chars += "!@#$%^&*()_+-=[]{}|;:,.<>?";
    if(chars.length === 0){        alert("اختر نوعاً واحداً على الأقل");        return;    }
    let password = "";
    for(let i = 0; i < lengthSlider.value; i++){        password += chars.charAt(            Math.floor(Math.random() * chars.length)        );    }
    passwordField.value = password;
    updateStrength();}
function updateStrength(){
    let score = 0;
    if(uppercase.checked) score++;    if(lowercase.checked) score++;    if(numbers.checked) score++;    if(symbols.checked) score++;
    score += Number(lengthSlider.value) > 15 ? 1 : 0;
    if(score <= 2){        strengthBar.className = "bg-red-500 h-full transition-all";        strengthBar.style.width = "35%";        strengthText.textContent = "ضعيفة";    }    else if(score <= 4){        strengthBar.className = "bg-yellow-500 h-full transition-all";        strengthBar.style.width = "70%";        strengthText.textContent = "متوسطة";    }    else{        strengthBar.className = "bg-green-500 h-full transition-all";        strengthBar.style.width = "100%";        strengthText.textContent = "قوية جداً";    }}
generateBtn.addEventListener("click", generatePassword);
copyBtn.addEventListener("click", () => {
    if(!passwordField.value) return;
    navigator.clipboard.writeText(passwordField.value);
    copyBtn.textContent = "✅ تم النسخ";
    setTimeout(() => {        copyBtn.textContent = "نسخ";    }, 2000);});
generatePassword();</script>
</body></html>

هل اعجبك الموضوع :

تعليقات

التنقل السريع