الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التحقق من قوة كلمة السر بإستخدام الجافا سكريبت

بدأه SIFE في 12 يناير 2011 · 12 رد · 2,291 مشاهدة · في قسم البرمجة بــ Javascript
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته

بعض المواقع تتيح تقوم بقياس مدى قوة كلمة السر لك أثناء التسجيل، مثلا ياهو و فسدوك أقصد فيسبوك :D، الفكرة تعتمد على إستخدام Regular Expression و عند ذلك إعطاء نتيجة.

مرفق مع المثال دالة للتحقق من تطابق حقلين.

<html>
<head>

  <script type="text/javascript">
   function passValidate(password, repassword, error)
    {
     PasswordMatch(password, repassword, error);
    }

   function PasswordStrength(password, attention)
    { 
	 var passlen = password.value.length;
	 var level = new Array();
	 level[0] = "Very weak";
	 level[1] = "weak";
	 level[2] = "Medium";
	 level[3] = "Strong";
	 level[4] = "Very strong";
	 if((document.getElementById("password").value.match(/\d+/)) || (document.getElementById("password").value.match(/[a-zA-Z]+/) && passlen < 9))
	  attention.innerHTML = level[0];
	 if(document.getElementById("password").value.match(/[a-zA-Z]+/))
	  attention.innerHTML = level[1];
	 if(document.getElementById("password").value.match(/[a-zA-Z]+/) && passlen > 12)
	  attention.innerHTML = level[2];
	 if((document.getElementById("password").value.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,),+,[,],|,=,\/,.,;,{,},<,>,\',\",,]+/)) 
	 || (document.getElementById("password").value.match(/[a-zA-Z]+[0-9]+/) && passlen > 9)
	 || (document.getElementById("password").value.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,),+,[,],|,=,\/,.,;,{,},<,>,\',\",,]+[0-9]+[a-zA-Z]+/)))
	  attention.innerHTML = level[3];
	 if(document.getElementById("password").value.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,),+,[,],|,=,\/,.,;,{,},<,>,\',\",,]+[a-zA-Z]+[0-9]+/) && passlen > 11)
	  attention.innerHTML = level[4];  
    }
  </script>
  <style type="text/css">
</style>

</head>
<body>
<form method="post" name="form1" id="form-password" action="">
  <fieldset>
    <label>Password:</label>
    <input type="password" name="password" id="password" value="" size="32" onkeyup="PasswordStrength(password, attention);passValidate(password, repassword, error)"/><span id="attention"></span><br>
    <label>Re-Enter Password:</label>
    <input type="password" name="repassword" id="repassword" size="32" onkeyup="passValidate(password, repassword, error)"/><span id="error"></span>
    <br>
    <input type="submit" value="Submit" id="submit" >
  </fieldset>
</form>
</body>
</html>

تم تعديل هذه المشاركة بواسطة SIFE في 12 يناير 2011 في 21:49

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#2

هناك خلل ما، لكني اعذرني لضيق الوقت لن أتمكن من مراجعة ما كتبت.

قمت بكتابة كلمة سر تحوي على حروف صغيرة وكبيرة وأرقام ورموز وطولها 60 محرف، لكن العبارة بقيت "weak"

وبصراحة لو قمت باختيار جزئين من الـ 5 أجزاء التي استخدمتها في كلمة السر في أي من المواقع التي ذكرت لكانت العبارة Strong+

للأسف لن يكون بإمكاني تزويدك بما كتبت :wink:

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#4
اقتباس
aaaaaaaaaAAAAAAAAAA21321321321

هذه أعطتني Strong،الخطأ يكون في ال pattern التي إعتمدتها.

اقتباس
وبصراحة لو قمت باختيار جزئين من الـ 5 أجزاء التي استخدمتها في كلمة السر في أي من المواقع التي ذكرت لكانت العبارة Strong+

ربما أبالغ في معايير كلمة السر.

اقتباس
للأسف لن يكون بإمكاني تزويدك بما كتبت :wink:

لا تخف لن أخبر أحدا :D.

كلمة مكونة من 60 حرف، أليست هذه جد كبيرة على كلمة سر أم أنت تستخدمها ك pass phrase في PGP.

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#5
SIFE كتب:

كلمة مكونة من 60 حرف، أليست هذه جد كبيرة على كلمة سر أم أنت تستخدمها ك pass phrase في PGP.

طبعاً مبالغ فيها. استخدمتها فقط لأرى متى سأصل إلى Strong لكني لم أفلح إلى Medium حتى :lol:

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#6

سأقوم بتعديل ال pattren غدا إن شاء الله، حان وقت النوم الآن.

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#7
SIFE كتب:

سأقوم بتعديل ال pattren غدا إن شاء الله، حان وقت النوم الآن.

أصبحت تنام الآن؟ :D

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#8

جرب نفس كلمة السر لكن مع وضع الأرقام هي الأولى وستحصل على weak

اقتباس
21321321321aaaaaaaaaAAAAAAAAAA

يمكن أن يكون المشكل أنك تتحقق من أن الكلمة تحتوي في البداية على حروف متبوعة بأرقام

[a-zA-Z]{5,}[0-9]{4,}

تم تعديل هذه المشاركة بواسطة herch في 12 يناير 2011 في 11:01

#9

لقد قمت بتعديل الدالة، يمكنكم التحقق الآن.

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#10

الجملة أصبحت very weak :'(

و الـ validate توقف فلم تعد تظهر أي عبارة.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#11

يبدو أن هناك خطا ما في ال pattren التي أستخدمها، بالضبط هنا:

(/.[!,:,@,#,$,%,^,&,*,?,_,~,-,(,),+,[,],|,=,\/,\,.,;,{,},<,>,',",,]+/)

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#12

اتوقع المشكلة ليس في patterns بقدر ماهي في الطريقة المتبعة , مثلا لو قمت بتعريف متغير اسميته weight و عند مطابقة اي pattern تقوم بزيادة عليه و في نهاية تدخلة في جملة if هذه تعديل على مثال

<html>
<head>

  <script type="text/javascript">
   function passValidate(password, repassword, error)
    {
     PasswordMatch(password, repassword, error);
    }

   function PasswordStrength(password, attention)
    { 
         var passlen = password.value.length;
         var level = new Array();
         level[0] = "Very weak";
         level[1] = "weak";
         level[2] = "Medium";
         level[3] = "Strong";
         level[4] = "Very strong";

         var weight = 0 , msg = level[0] ;
         //small
         if( document.getElementById("password").value.match(/[a-z]+/))
          weight += 5 ; 
         //capital 
         if(document.getElementById("password").value.match(/[A-Z]+/))
          weight += 10; 
	 //num
         if(document.getElementById("password").value.match(/[0-9]+/))
          weight += 15  ; 
         //other
         if(     document.getElementById("password").value.match(/[^\w_]+/)   )//anything than A-Za-z0-9
          weight += 20 ; 

	 if( passlen > 1 && passlen < 10) 
	 {
	   weight += 5 ; 
	 }
	 else if( passlen > 10 && passlen < 15 ) 
	 {
            weight += 20; 
	 }     
	 else if( passlen >=  15)
	 {
	     weight += 30 ; 
	 }

         if( weight >= 0 && weight <= 10 )
	 {
	    msg = level[0];
         }
         else if( weight >= 10 && weight <= 20 )
	 {
            msg = level[1];
         }
         else if( weight >= 20 && weight <= 30 )
	 {
            msg = level[2];
         }
         else if( weight >= 30 && weight <= 40 )
	 {
             msg = level[3];   
         }         
         else if( weight > 40 )
	 {
              msg = level[4];  
         }
	attention.innerHTML = msg ;	 
    }
  </script>
  <style type="text/css">
</style>

</head>
<body>
<form method="post" name="form1" id="form-password" action="">
  <fieldset>
    <label>Password:</label>
    <input type="password" name="password" id="password" value="" size="32" onkeyup="PasswordStrength(password, attention);passValidate(password, repassword, error)"/><span id="attention"></span><br>
    <label>Re-Enter Password:</label>
    <input type="password" name="repassword" id="repassword" size="32" onkeyup="passValidate(password, repassword, error)"/><span id="error"></span>
    <br>
    <input type="submit" value="Submit" id="submit" >
  </fieldset>
</form>
</body>
</html>
1
#13

فكرتك في مكانها يا أحمد :thumb_up:

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…