قدرت رمز عبور را با JavaScript و عبارات منظم بررسی کنید

قدرت رمز عبور را با JavaScript و عبارات منظم بررسی کنید

من در حال تحقیق درباره یافتن یک مثال خوب از یک جستجوگر رمز عبور رمز عبور بودم که از آن استفاده می کند جاوا اسکریپت و عبارات با قاعده (Regex) در برنامه کار من ، برای تأیید قدرت رمز عبور ، یک پست ارسال می کنیم و برای کاربران ما بسیار ناخوشایند است.

Regex چیست؟

عبارت منظم دنباله ای از کاراکترها است که الگوی جستجو را تعریف می کند. معمولاً این الگوها توسط الگوریتم های جستجوی رشته برای استفاده می شوند پیدا کردن or پیدا و جایگزین کنید عملیات روی رشته ها یا برای اعتبار سنجی ورودی. 

این مقاله قطعاً برای آموزش اصطلاحات منظم شما نیست. فقط بدانید که هنگام جستجوی الگوهای موجود در متن ، توانایی استفاده از عبارات منظم پیشرفت شما را کاملاً ساده می کند. همچنین توجه به این نکته مهم است که اکثر زبان های توسعه استفاده منظم از عبارت را بهینه کرده اند ... بنابراین به جای تجزیه و جستجوی مرحله به مرحله رشته ها ، Regex معمولاً از نظر سرور و سمت کلاینت بسیار سریعتر است.

قبل از پیدا کردن ، کاملاً وب را جستجو کردم به عنوان مثال برخی از عبارات منظم عالی که به دنبال ترکیبی از طول ، نویسه ها و نمادها هستند. با این حال ، کد برای ذائقه من کمی زیاد بود و برای دات نت طراحی شده بود. بنابراین کد را ساده کردم و در جاوا اسکریپت قرار دادم. این امر باعث می شود قبل از ارسال مجدد آن ، قدرت گذرواژه را در زمان واقعی بر روی مرورگر مشتری تأیید کند و در مورد قدرت رمز ورود به کاربر بازخورد ارائه دهد.

رمز عبور را بنویسید

با هر ضربه صفحه کلید ، رمز عبور در برابر بیان منظم آزمایش می شود و سپس بازخورد در یک بازه در زیر آن به کاربر ارائه می شود.




رمز عبور را تایپ کنید

این کد است

La عبارات با قاعده یک کار خارق العاده برای به حداقل رساندن طول کد انجام دهید:

  • شخصیت های بیشتر - اگر طول آن کمتر از 8 کاراکتر باشد.
  • ضعیف - اگر طول کمتر از 10 حرف باشد و شامل ترکیبی از نمادها ، کلمات ، متن نباشد.
  • متوسط - اگر طول 10 حرف یا بیشتر باشد و دارای ترکیبی از نمادها ، کلمات ، متن باشد.
  • قوی - اگر طول 14 حرف یا بیشتر باشد و دارای ترکیبی از نمادها ، کلمات ، متن باشد.

<script language="javascript">
    function passwordChanged() {
        var strength = document.getElementById('strength');
        var strongRegex = new RegExp("^(?=.{14,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
        var mediumRegex = new RegExp("^(?=.{10,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
        var enoughRegex = new RegExp("(?=.{8,}).*", "g");
        var pwd = document.getElementById("password");
        if (pwd.value.length == 0) {
            strength.innerHTML = 'Type Password';
        } else if (false == enoughRegex.test(pwd.value)) {
            strength.innerHTML = 'More Characters';
        } else if (strongRegex.test(pwd.value)) {
            strength.innerHTML = '<span style="color:green">Strong!</span>';
        } else if (mediumRegex.test(pwd.value)) {
            strength.innerHTML = '<span style="color:orange">Medium!</span>';
        } else {
            strength.innerHTML = '<span style="color:red">Weak!</span>';
        }
    }
</script>
<input name="password" id="password" type="text" size="15" maxlength="100" onkeyup="return passwordChanged();" />
<span id="strength">Type Password</span>

درخواست رمز ورود خود را سخت کنید

ضروری است که شما فقط ساخت رمز عبور را در Javascript خود تأیید نکنید. این امکان را برای هر کسی که دارای ابزار توسعه مرورگر است ، فراهم می کند تا اسکریپت را دور زده و از رمز عبور مورد نظر خود استفاده کند. قبل از ذخیره رمز عبور در سیستم عامل خود ، باید همیشه از یک سمت سمت سرور برای تأیید قدرت رمز عبور استفاده کنید.

34 نظرات

  1. 1
  2. 2

    متشکرم! متشکرم! متشکرم! من 2 هفته است که با کد قدرت رمز عبور لعنتی از وب سایت های دیگر احمق کرده ام و موهایم را بیرون آورده ام. مال شما کوتاه است ، درست مثل آنچه من می خواهم کار می کند و از همه بهتر ، برای یک تازه کار جاوا اسکریپت قابل تغییر است! می خواستم حکم قدرت را بگیرم و اجازه ندهم پست فرم در واقع رمز ورود کاربر را به روز کند ، مگر اینکه با آزمون قدرت باشد. کد دیگران خیلی پیچیده بود یا درست کار نمی کرد یا چیز دیگری. دوستت دارم! XXXXX

  3. 4

    خدا را شکر برای افرادی که در واقع می توانند قطعه ای از کد را به درستی بنویسند.
    تجربه ای مشابه جانیس داشت.

    این درست خارج از جعبه مناسب برای افرادی مثل من است که جاوا اسکریپت را نمی توانند کد بزنند!

  4. 5
  5. 6

    سلام ، اول از همه با تشکر از زحمات شما ، سعی کردم از این با Asp.net استفاده کنم اما جواب نداد ، من استفاده می کنم

    به جای برچسب ، و این کار نمی کند ، هیچ پیشنهادی ؟!

  6. 7

    به Nisreen: کد موجود در کادر برجسته با خمیر برش کار نمی کند. نقل قول واحد بهم ریخته است. کد پیوند تظاهرات خوب است.

  7. 8

    سلام ، من متن شما را دوست دارم! من آن را به هلندی ترجمه کردم ، و آن را در انجمن من اینجا ارسال کردم!

  8. 9
  9. 10
  10. 11

    "P @ s $ w0rD" با شدت زیاد نشان داده می شود ، اگرچه با یک حمله افسانه ای خیلی زود شکسته می شود ...
    برای استفاده از چنین ویژگی در یک راه حل حرفه ای ، من معتقدم ترکیب این الگوریتم با یک بررسی dictionnary مهم است.

  11. 12
  12. 13

    با تشکر برای این کد کوچک ، اکنون می توانم از آن برای آزمایش قدرت رمز عبور خود در هنگام بازدید بازدیدکنندگان خود استفاده کنم ،

  13. 14
  14. 15
  15. 16
  16. 17
  17. 18
  18. 19

    کسی می تواند بگوید ، چرا این کار من نیست.

    من همه کد را کپی کردم ، و آن را در دفترچه یادداشت ++ جای گذاری کردم ، اما اصلا کار نمی کند؟
    لطفا کمکم کن..

  19. 20
  20. 21
  21. 22
  22. 23
  23. 24

    این نوع "کنترل کننده قدرت" مردم را به یک مسیر بسیار خطرناک سوق می دهد. این تنوع کاراکتر را نسبت به طول عبارت عبور ارزیابی می کند و باعث می شود رمزهای عبور کوتاه تر و متنوع تر از کلمات عبور طولانی تر و متنوع تر باشد. این مغالطه ای است که اگر کاربران شما هرگز با تهدید جدی هک مواجه شوند ، به مشکل برمی خورد.

    • 25

      من مخالف نیستم ، اردن! مثال به سادگی به عنوان نمونه ای از فیلمنامه آورده شد. توصیه من برای افراد این است که از یک ابزار مدیریت رمز عبور برای ایجاد عبارات عبور مستقل برای هر سایت خاص خود استفاده کنند. با تشکر!

  24. 26
  25. 27
  26. 28

    واقعاً سپاسگزارم که شما را بارها جستجو کرده اند اما سرانجام من پست شما را گرفتم و واقعاً مبهوت هستم. متشکرم

  27. 29
  28. 31

    من از اشتراک گذاری شما قدردانی می کنم به دنبال تقویت قدرت رمز عبور در وب سایت ما بوده ایم و این یکی همانطور که می خواستم کار کرده است. خیلی ممنونم!

  29. 33

    شما یک محافظ زنده هستید! من داشتم رشته های چپ و راست و مرکز را تجزیه می کردم و فکر کردم راهی بهتر وجود دارد و کد کد خود را با استفاده از Regex پیدا کردم. توانستم با آن برای سایت من سر و صدا کنم ... شما نمی دانید که این چقدر به من کمک کرد. خیلی ممنون از داگلاس !!

شما چه فکر میکنید؟

این سایت از Akismet برای کاهش هرزنامه استفاده می کند. بدانید که چگونه نظر شما پردازش می شود.