उभरती हुई प्रौद्योगिकीसीआरएम और डेटा प्लेटफार्मईमेल विपणन और ईमेल विपणन स्वचालन

जावास्क्रिप्ट और रेगुलर एक्सप्रेशंस के साथ पासवर्ड की ताकत की जांच करें (सर्वर-साइड उदाहरणों के साथ भी!)

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

Regex क्या है?

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

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

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

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

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

यहाँ कोड है

RSI नियमित अभिव्यक्ति कोड की लंबाई कम करने का शानदार काम करें। यह जावास्क्रिप्ट फ़ंक्शन एक पासवर्ड की ताकत की जांच करता है और क्या इसे विफल करना आसान, मध्यम, कठिन या अनुमान लगाने में बेहद कठिन है। जैसा कि व्यक्ति टाइप करता है, यह उसे मजबूत होने के लिए प्रोत्साहित करने के लिए सुझाव प्रदर्शित करता है। यह पासवर्ड के आधार पर मान्य करता है:

  • लंबाई - यदि लंबाई 8 वर्णों से कम या अधिक है।
  • मिश्रित केस - अगर पासवर्ड में अपर और लोअर केस कैरेक्टर हैं।
  • नंबर - अगर पासवर्ड में नंबर शामिल हैं।
  • विशेष वर्ण - यदि पासवर्ड में विशेष वर्ण शामिल हैं।

फ़ंक्शन कठिनाई को प्रदर्शित करता है और साथ ही पासवर्ड को और सख्त करने के लिए कुछ सुझाव भी देता है।

function checkPasswordStrength(password) {
  // Initialize variables
  var strength = 0;
  var tips = "";

  // Check password length
  if (password.length < 8) {
    tips += "Make the password longer. ";
  } else {
    strength += 1;
  }

  // Check for mixed case
  if (password.match(/[a-z]/) && password.match(/[A-Z]/)) {
    strength += 1;
  } else {
    tips += "Use both lowercase and uppercase letters. ";
  }

  // Check for numbers
  if (password.match(/\d/)) {
    strength += 1;
  } else {
    tips += "Include at least one number. ";
  }

  // Check for special characters
  if (password.match(/[^a-zA-Z\d]/)) {
    strength += 1;
  } else {
    tips += "Include at least one special character. ";
  }

  // Return results
  if (strength < 2) {
    return "Easy to guess. " + tips;
  } else if (strength === 2) {
    return "Medium difficulty. " + tips;
  } else if (strength === 3) {
    return "Difficult. " + tips;
  } else {
    return "Extremely difficult. " + tips;
  }
}

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

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

पासवर्ड शक्ति के लिए पीएचपी समारोह

function checkPasswordStrength($password) {
  // Initialize variables
  $strength = 0;

  // Check password length
  if (strlen($password) < 8) {
    return "Easy to guess";
  } else {
    $strength += 1;
  }

  // Check for mixed case
  if (preg_match("/[a-z]/", $password) && preg_match("/[A-Z]/", $password)) {
    $strength += 1;
  }

  // Check for numbers
  if (preg_match("/\d/", $password)) {
    $strength += 1;
  }

  // Check for special characters
  if (preg_match("/[^a-zA-Z\d]/", $password)) {
    $strength += 1;
  }

  // Return strength level
  if ($strength < 2) {
    return "Easy to guess";
  } else if ($strength === 2) {
    return "Medium difficulty";
  } else if ($strength === 3) {
    return "Difficult";
  } else {
    return "Extremely difficult";
  }
}

पासवर्ड स्ट्रेंथ के लिए पायथन फंक्शन

def check_password_strength(password):
  # Initialize variables
  strength = 0

  # Check password length
  if len(password) < 8:
    return "Easy to guess"
  else:
    strength += 1

  # Check for mixed case
  if any(char.islower() for char in password) and any(char.isupper() for char in password):
    strength += 1

  # Check for numbers
  if any(char.isdigit() for char in password):
    strength += 1

  # Check for special characters
  if any(not char.isalnum() for char in password):
    strength += 1

  # Return strength level
  if strength < 2:
    return "Easy to guess"
  elif strength == 2:
    return "Medium difficulty"
  elif strength == 3:
    return "Difficult"
  else:
    return "Extremely difficult"

सी # पासवर्ड शक्ति के लिए समारोह

public string CheckPasswordStrength(string password) {
  // Initialize variables
  int strength = 0;

  // Check password length
  if (password.Length < 8) {
    return "Easy to guess";
  } else {
    strength += 1;
  }

  // Check for mixed case
  if (password.Any(char.IsLower) && password.Any(char.IsUpper)) {
    strength += 1;
  }

  // Check for numbers
  if (password.Any(char.IsDigit)) {
    strength += 1;
  }

  // Check for special characters
  if (password.Any(ch => !char.IsLetterOrDigit(ch))) {
    strength += 1;
  }

  // Return strength level
  if (strength < 2) {
    return "Easy to guess";
  } else if (strength == 2) {
    return "Medium difficulty";
  } else if (strength == 3) {
    return "Difficult";
  } else {
    return "Extremely difficult";
  }
}

पासवर्ड की मजबूती के लिए जावा फंक्शन

public String checkPasswordStrength(String password) {
  // Initialize variables
  int strength = 0;

  // Check password length
  if (password.length() < 8) {
    return "Easy to guess";
  } else {
    strength += 1;
  }

  // Check for mixed case
  if (password.matches(".*[a-z].*") && password.matches(".*[A-Z].*")) {
    strength += 1;
  }

  // Check for numbers
  if (password.matches(".*\\d.*")) {
    strength += 1;
  }

  // Check for special characters
  if (password.matches(".*[^a-zA-Z\\d].*")) {
    strength += 1;
  }

  // Return strength level
  if (strength < 2) {
    return "Easy to guess";
  } else if (strength == 2) {
    return "Medium difficulty";
  } else if (strength == 3) {
    return "Difficult";
  } else {
    return "Extremely difficult";
  }
}

Douglas Karr

Douglas Karr के संस्थापक हैं Martech Zone और डिजिटल परिवर्तन पर एक मान्यता प्राप्त विशेषज्ञ। डगलस ने कई सफल MarTech स्टार्टअप्स को शुरू करने में मदद की है, Martech के अधिग्रहण और निवेश में $5 बिलियन से अधिक के उचित परिश्रम में सहायता की है, और अपने स्वयं के प्लेटफॉर्म और सेवाओं को लॉन्च करना जारी रखा है। के को-फाउंडर हैं Highbridge, एक डिजिटल ट्रांसफ़ॉर्मेशन कंसल्टिंग फ़र्म। डगलस डमीज गाइड और बिजनेस लीडरशिप बुक के प्रकाशित लेखक भी हैं।

33 टिप्पणियाँ

  1. मुझे एक और पासवर्ड शक्ति चेकर्स मिला। शब्द शब्दकोश के आधार पर उनका एल्गोरिथ्म। Microsoft.com पर एक आज़माएं - http://www.microsoft.com/protect/yourself/password/checker.mspx और itsimpl.com पर एक - http://www.itsimpl.com

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

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

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

  4. निसरीन के लिए: हाइलाइट किए गए बॉक्स में कोड कट'न'पेस्ट के साथ काम नहीं करता है। एकल उद्धरण गड़बड़ है। हालांकि प्रदर्शन लिंक का कोड ठीक है।

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

  6. इस छोटे कोड के लिए धन्यवाद, अब मैं अपने पासवर्ड की शक्ति का परीक्षण करने के लिए इसका उपयोग कर सकता हूं, जब मेरे आगंतुक अपने पासवर्ड का उपयोग करते हैं,

  7. किसी को बता सकते हैं, यह मेरा काम क्यों नहीं किया ..

    मैंने सभी कोड कॉपी किए, और नोटपैड ++ में पेस्ट किया, लेकिन यह बिल्कुल काम नहीं करता है?
    कृपया मेरी मदद करें..

  8. इस प्रकार की "शक्ति चेकर" लोगों को एक बहुत ही खतरनाक रास्ते से नीचे ले जाती है। यह पासफ़्रेज़ लंबाई पर वर्ण विविधता को महत्व देता है, जिससे यह कम, अधिक विविध पासवर्डों की तुलना में कम, विविध विविध पासवर्डों को रेट करता है। यह एक ऐसी गिरावट है जो आपके उपयोगकर्ताओं को कभी भी हैकिंग के खतरे का सामना करने पर मुसीबत में डाल देगी।

    1. मैं असहमत नहीं, जॉर्डन! उदाहरण को स्क्रिप्ट के उदाहरण के रूप में सामने रखा गया था। लोगों के लिए मेरी सिफारिश किसी भी साइट के लिए स्वतंत्र पासफ़्रेज़ बनाने के लिए पासवर्ड प्रबंधन टूल का उपयोग करना है जो इसके लिए अद्वितीय हैं। धन्यवाद!

  9. मैं आपको साझा करने की सराहना करता हूं! हमारी वेबसाइट पर पासवर्ड की शक्ति को देख रहे हैं और यह एक तरह से मैं चाहता था काम किया है। आपको बहुत - बहुत धन्यवाद!

  10. आप एक जीवित सेवर हैं! मैं सही और केंद्र छोड़ दिया तार पार्स कर रहा था और सोचा कि वहाँ एक बेहतर तरीका है और Regex का उपयोग कर अपने कोड का टुकड़ा मिला। मेरी साइट के लिए इसके साथ छेड़छाड़ करने में सक्षम था ... आपको पता नहीं है कि इससे कितनी मदद मिली। बहुत बहुत धन्यवाद डगलस !!

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

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

संबंधित आलेख