जावास्क्रिप्ट और नियमित अभिव्यक्तियों के साथ पासवर्ड की शक्ति जांचें

जावास्क्रिप्ट और नियमित अभिव्यक्तियों के साथ पासवर्ड की शक्ति जांचें

मैं एक पासवर्ड स्ट्रेंथ चेकर का एक अच्छा उदाहरण खोजने पर कुछ शोध कर रहा था जो उपयोग करता है जावास्क्रिप्ट और नियमित अभिव्यक्ति (रेगेक्स)। मेरे काम पर एप्लिकेशन में, हम पासवर्ड की ताकत को सत्यापित करने के लिए एक पोस्ट बैक करते हैं और यह हमारे उपयोगकर्ताओं के लिए काफी असुविधाजनक है।

Regex क्या है?

एक नियमित अभिव्यक्ति वर्णों का एक क्रम है जो एक खोज पैटर्न को परिभाषित करता है। आमतौर पर, ऐसे पैटर्न का उपयोग स्ट्रिंग खोज एल्गोरिदम द्वारा किया जाता है खोज or ढूँढें और बदलें स्ट्रिंग्स पर या इनपुट सत्यापन के लिए संचालन। 

यह लेख निश्चित रूप से आपको रेगुलर एक्सप्रेशन सिखाने के लिए नहीं है। बस यह जान लें कि जब आप टेक्स्ट में पैटर्न खोजते हैं तो रेगुलर एक्सप्रेशन का उपयोग करने की क्षमता आपके विकास को बिल्कुल सरल बना देगी। यह भी ध्यान रखना महत्वपूर्ण है कि अधिकांश विकास भाषाओं ने नियमित अभिव्यक्ति उपयोग को अनुकूलित किया है ...

मैंने मिलने से पहले वेब को काफी खोजा एक उदाहरण कुछ बेहतरीन रेगुलर एक्सप्रेशंस जो लंबाई, वर्णों और प्रतीकों के संयोजन की तलाश में हैं। हालाँकि, मेरे स्वाद के लिए कोड थोड़ा अधिक था और .NET के लिए तैयार किया गया था। इसलिए मैंने कोड को सरल बनाया और इसे जावास्क्रिप्ट में डाल दिया। यह इसे वापस पोस्ट करने से पहले क्लाइंट के ब्राउज़र पर वास्तविक समय में पासवर्ड की ताकत को मान्य करता है ... और पासवर्ड की ताकत पर उपयोगकर्ता को कुछ प्रतिक्रिया प्रदान करता है।

एक पासवर्ड टाइप करें

कीबोर्ड के प्रत्येक स्ट्रोक के साथ, पासवर्ड को नियमित अभिव्यक्ति के खिलाफ परीक्षण किया जाता है और फिर उपयोगकर्ता को इसके नीचे एक स्पैन में फीडबैक प्रदान किया जाता है।




पासवर्ड लिखें

यहाँ कोड है

पिछली कक्षा का नियमित अभिव्यक्ति कोड की लंबाई को कम करने का एक शानदार काम करें:

  • अधिक वर्ण - यदि लंबाई 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>

आपका पासवर्ड अनुरोध हार्ड करना

यह आवश्यक है कि आप केवल अपने जावास्क्रिप्ट के भीतर पासवर्ड निर्माण को मान्य न करें। यह ब्राउज़र विकास उपकरण वाले किसी भी व्यक्ति को स्क्रिप्ट को बायपास करने और जो भी पासवर्ड वे चाहते हैं उसका उपयोग करने में सक्षम करेगा। पासवर्ड को अपने प्लेटफ़ॉर्म में संग्रहीत करने से पहले आपको हमेशा सर्वर-साइड चेक का उपयोग करना चाहिए।

34 टिप्पणियाँ

  1. 1
  2. 2

    धन्यवाद! धन्यवाद! धन्यवाद! मैं अन्य वेबसाइटों से लानत पासवर्ड शक्ति कोड के साथ 2 सप्ताह के लिए मूर्ख बना रहा हूं और अपने बालों को बाहर खींच रहा हूं। तुम्हारा छोटा है, वैसे ही काम करता है जैसे मैं चाहता हूं और सबसे अच्छा, एक जावास्क्रिप्ट नौसिखिए को संशोधित करने के लिए आसान! मैं ताकत के फैसले पर कब्जा करना चाहता था और फॉर्म पोस्ट को वास्तव में उपयोगकर्ता के पासवर्ड को अपडेट करने की अनुमति नहीं देता था जब तक कि वह शक्ति परीक्षण से मुलाकात नहीं करता था। अन्य लोगों का कोड बहुत जटिल था या सही या कुछ और काम नहीं करता था। मैं तुमसे प्यार करता हूँ! XXXXX

  3. 4

    उन लोगों के लिए भगवान का शुक्र है जो वास्तव में कोड का एक टुकड़ा ठीक से लिख सकते हैं।
    जैनिस के रूप में एक ही अनुभव था।

    यह बॉक्स के ठीक बाहर काम करता है जो कि मेरे जैसे लोगों के लिए एकदम सही है जो कैंट कोड जावास्क्रिप्ट नहीं कर सकते हैं!

  4. 5
  5. 6

    नमस्ते, उर प्रयासों के लिए सबसे पहले बहुत धन्यवाद, मैंने इसे asp.net के साथ उपयोग करने की कोशिश की, लेकिन काम नहीं किया, मैं उपयोग कर रहा हूं

    टैग के बजाय, और यह काम नहीं किया, किसी भी सुझाव ?!

  6. 7
  7. 8

    अरे, मुझे आपकी स्क्रिप्ट पसंद है! मैंने इसे डच में अनुवादित किया, और मैंने इसे अपने मंच पर यहां पोस्ट किया!

  8. 9
  9. 10
  10. 11

    "पी @ $ w0rD" मजबूत पर दिखाता है, हालांकि यह एक काल्पनिक हमले के साथ काफी जल्दी टूट जाएगा ...
    एक व्यावसायिक समाधान पर इस तरह की सुविधा को तैनात करने के लिए, मेरा मानना ​​है कि इस एल्गोरिथ्म को एक डिक्शनरी चेक के साथ जोड़ना महत्वपूर्ण है।

  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 का उपयोग कर अपने कोड का टुकड़ा मिला। मेरी साइट के लिए इसके साथ छेड़छाड़ करने में सक्षम था ... आपको पता नहीं है कि इससे कितनी मदद मिली। बहुत बहुत धन्यवाद डगलस !!

तुम्हें क्या लगता है?

यह साइट स्पैम को कम करने के लिए अकिस्मेट का उपयोग करती है। जानें कि आपका डेटा कैसे संसाधित किया जाता है.