من در حال تحقیق درباره یافتن یک مثال خوب از یک جستجوگر رمز عبور رمز عبور بودم که از آن استفاده می کند جاوا اسکریپت و عبارات با قاعده (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 خود تأیید نکنید. این امکان را برای هر کسی که دارای ابزار توسعه مرورگر است ، فراهم می کند تا اسکریپت را دور بزند و از رمز عبور مورد نظر خود استفاده کند. قبل از ذخیره رمز عبور در سیستم عامل خود ، باید همیشه از یک سمت سمت سرور برای تأیید قدرت رمز عبور استفاده کنید.
من یک بررسی کننده قدرت رمز عبور دیگر پیدا کردم. الگوریتم آنها بر اساس فرهنگ لغات است. یکی را در microsoft.com امتحان کنید - http://www.microsoft.com/protect/yourself/password/checker.mspx و یکی در itsimpl.com – http://www.itsimpl.com
متشکرم! متشکرم! متشکرم! من 2 هفته است که با کد قوی رمز عبور لعنتی از وب سایت های دیگر فریب می دهم و موهایم را بیرون می کشم. مال شما کوتاه است، درست همانطور که من می خواهم کار می کند و بهتر از همه، برای یک تازه کار جاوا اسکریپت به راحتی قابل تغییر است! من میخواستم حکم قدرت را دریافت کنم و اجازه ندهم که فرم پست رمز عبور کاربر را بهروزرسانی کند، مگر اینکه تست قدرت را انجام دهد. کد دیگران خیلی پیچیده بود یا درست کار نمی کرد یا چیز دیگری. دوستت دارم! XXXXX
خواهش میکنم! خواهش میکنم! خواهش میکنم!
من هم شما را دوست دارم!
خدا را شکر برای افرادی که واقعاً می توانند یک قطعه کد را به درستی بنویسند.
تجربه مشابه جانیس را داشت.
این دقیقاً خارج از جعبه کار می کند که برای افرادی مانند من که نمی توانند جاوا اسکریپت کدنویسی کنند عالی است!
از اینکه کدی نوشتید که دقیقاً همان کاری را که روی قوطی میگوید انجام میدهد، متشکرم!
سلام، اول از همه از زحمات شما بسیار سپاسگزارم، من سعی کردم از این با Asp.net استفاده کنم اما کار نکرد، من دارم استفاده می کنم
به جای برچسب، و کار نکرد، هیچ پیشنهادی دارید؟!
به Nisreen: کد موجود در کادر برجسته شده با cut'n'paste کار نمی کند. نقل قول تک به هم ریخته است. هر چند کد پیوند نمایش خوب است.
سلام، من فیلمنامه شما را دوست دارم! من آن را به هلندی ترجمه کردم و در انجمن خود در اینجا پست کردم!
کارت عالی بود! دقیقاً چگونه باید روی مشتری انجام شود
کار بسیار خوبی….
ممنون داگلاس، من از آن برای کار فعلی خود استفاده می کنم.
"P@s$w0rD" با قدرت نمایش داده می شود، اگرچه با حمله دیکشنری نسبتاً سریع شکسته می شود…
برای استقرار چنین ویژگی در یک راه حل حرفه ای، من معتقدم که ترکیب این الگوریتم با بررسی فرهنگ لغت مهم است.
با کمی تغییر در XULRunner عالی کار می کند. با تشکر!
با تشکر از این کد کوچک، اکنون می توانم از آن برای آزمایش قدرت رمز عبور خود استفاده کنم، زمانی که بازدیدکنندگان رمز عبور خود را وارد می کنند.
کد نویسی عالی
فیلمنامه فوق العاده بود. من در پروژه فعلی خود استفاده کرده بودم
با تشکر از شما برای به اشتراک گذاری!
بیان بسیار ساده و خارق العاده من به عنوان یک آزمایشگر TC های خود را از این عبارت استخراج کردم.
با تشکر از شما برای به اشتراک گذاری. شما چند لینک خراب در این صفحه دارید. FYI.
کسی میتونه بگه چرا مال من کار نکرد..
من همه کدها را کپی کردم و در notepad++ قرار دادم، اما اصلا کار نمی کند؟
لطفا کمکم کن..
خارق العاده!!!!! متشکرم.
کار عالی مرد! ساده و موثر. خیلی ممنون از به اشتراک گذاری!
متشکرم
خوب، thx. اما... نمونه ای از pw قوی چیست؟ 'نمی توانم یکی را پیدا کنم!-{}
این نوع "بررسی کننده قدرت" افراد را به مسیر بسیار خطرناکی هدایت می کند. تنوع کاراکترها را بیش از طول عبارت عبور ارزیابی میکند و باعث میشود که رمزهای عبور کوتاهتر و متنوعتر را قویتر از گذرواژههای طولانیتر و کمتر متفاوت ارزیابی کند. این اشتباهی است که کاربران شما را در صورت مواجهه با تهدید جدی هک به دردسر میاندازد.
من مخالف نیستم، جردن! مثال به سادگی به عنوان نمونه ای از فیلمنامه ارائه شد. توصیه من به مردم این است که از ابزار مدیریت رمز عبور برای ایجاد عبارات عبور مستقل برای هر سایتی که مختص آن سایت است استفاده کنند. با تشکر!
ممنون عالی کار میکنه
با تشکر از شما خوب کار می کند
واقعا متشکرم که بارها این را جستجو کردید اما در نهایت من پست شما را دریافت کردم و واقعاً شگفت زده شدم. متشکرم
مرسی رفیق. به تازگی در وب سایت من مستقر شده و بسیار خوب کار می کند.
عاشق شنیدن آن! خیلی خوش آمدید!
از اشتراک گذاری شما سپاسگزارم! به دنبال تقویت قدرت رمز عبور در وب سایت ما بوده ام و این یکی همانطور که می خواستم کار کرد. خیلی ممنونم!
با تشکر، امیدوارم بتوانید آن را در صورت نیاز سفارشی کنید.
شما یک پس انداز زنده هستید! من در حال تجزیه رشته ها به سمت چپ و راست و وسط بودم و فکر کردم راه بهتری وجود دارد و قطعه کد شما را با استفاده از Regex پیدا کردم. توانستم با آن برای سایت من سر و صدا کنم ... شما نمی دانید چقدر این کمک کرد. خیلی ممنون داگلاس!!
عالی برای شنیدن!