Ný tækniCRM og gagnapallarMarkaðssetning tölvupósts & Sjálfvirk markaðssetning tölvupósts

Athugaðu styrk lykilorða með JavaScript og venjulegum tjáningum (með dæmum á netþjóni líka!)

Ég var að gera nokkrar rannsóknir á því að finna gott dæmi um lykilorðastyrkara sem notar JavaScript og Venjuleg tjáning (Regex). Í forritinu í vinnunni minni sendum við til baka til að staðfesta styrkleika lykilorðsins og það er mjög óþægilegt fyrir notendur okkar.

Hvað er Regex?

Regluleg tjáning er röð stafa sem skilgreinir leitarmynstur. Venjulega eru slík mynstur notuð af strengjaleitarreikniritum fyrir finna or finna og skipta út aðgerðir á strengjum, eða til að staðfesta inntak. 

Þessi grein er örugglega ekki til að kenna þér reglulega orðatiltæki. Veistu bara að hæfileikinn til að nota reglulega segð mun algerlega einfalda þróun þína þegar þú leitar að mynstri í texta. Það er einnig mikilvægt að hafa í huga að flest þróunarmál hafa fínstillt notkun reglulegrar tjáningar ... þannig að frekar en að flokka og leita strengi skref fyrir skref, er Regex venjulega mun hraðari bæði á netþjóni og viðskiptavinarhlið.

Ég leitaði talsvert á vefnum áður en ég fann dæmi af nokkrum frábærum reglulegum svipbrigðum sem leita að sambandi af lengd, stöfum og táknum. Hins vegar var kóðinn svolítið óhóflegur fyrir minn smekk og sérsniðinn fyrir .NET. Svo ég einfaldaði kóðann og setti hann í JavaScript. Þetta gerir það að verkum að það staðfestir lykilorðsstyrkinn í rauntíma í vafra viðskiptavinarins áður en hann birtir það aftur ... og veitir notendum svör um styrk lykilorðsins.

Sláðu inn lykilorð

Með hverju höggi á lyklaborðinu er lykilorðið prófað gegn venjulegri tjáningu og síðan er notendum veitt endurgjöf í sviðinu undir því.

Hér er kóðinn

The Venjuleg tjáning gera frábært starf við að lágmarka lengd kóðans. Þessi Javascript aðgerð athugar styrk lykilorðs og hvort það sé auðvelt, miðlungs, erfitt eða afar erfitt að giska á það. Þegar manneskjan skrifar birtir hún ráð til að hvetja hana til að vera sterkari. Það staðfestir lykilorðið byggt á:

  • Lengd – Ef lengdin er undir eða yfir 8 stöfum.
  • Blandað mál – Ef lykilorðið hefur bæði hástafi og lágstafi.
  • Tölur – Ef lykilorðið inniheldur tölur.
  • Sérstafir – Ef lykilorðið inniheldur sérstafi.

Aðgerðin sýnir erfiðleikana sem og nokkrar ábendingar um að herða lykilorðið frekar.

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;
  }
}

Hertu lykilorðsbeiðni þína

Það er nauðsynlegt að þú staðfestir ekki bara lykilorðagerðina í Javascript þínu. Þetta myndi gera öllum með þróunarverkfæri vafra kleift að komast framhjá handritinu og nota hvaða lykilorð sem þeir vilja. Þú ættir ALLTAF að nota athugun á netþjóninum til að sannreyna styrkleika lykilorðsins áður en þú geymir það á kerfinu þínu.

PHP aðgerð fyrir styrkleika lykilorðs

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";
  }
}

Python aðgerð fyrir styrkleika lykilorðs

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"

C# aðgerð fyrir styrkleika lykilorðs

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";
  }
}

Java aðgerð fyrir styrkleika lykilorðs

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 er stofnandi Martech Zone og viðurkenndur sérfræðingur í stafrænni umbreytingu. Douglas hefur hjálpað til við að koma nokkrum farsælum MarTech sprotafyrirtækjum af stað, hefur aðstoðað við áreiðanleikakönnun upp á yfir $5 milljarða í kaupum og fjárfestingum Martech og heldur áfram að hleypa af stokkunum eigin kerfum og þjónustu. Hann er einn af stofnendum Highbridge, ráðgjafarfyrirtæki um stafræna umbreytingu. Douglas er einnig útgefinn höfundur Dummie's guide og bók um leiðtogaviðskipti.

33 Comments

  1. ÞAKKA ÞÉR FYRIR! ÞAKKA ÞÉR FYRIR! ÞAKKA ÞÉR FYRIR! Ég er búin að vera að fíflast í 2 vikur með helvítis lykilorðstyrkskóða frá öðrum vefsíðum og rífa hárið á mér. Þín er stutt, virkar alveg eins og ég vil og það besta af öllu, auðvelt fyrir Javascript nýliða að breyta! Ég vildi fanga styrkleikadóminn og ekki láta eyðublaðið birta til að uppfæra raunverulega lykilorð notandans nema það uppfyllti styrkleikaprófið. Kóði annarra var of flókinn eða virkaði ekki rétt eða eitthvað annað. Ég elska þig! XXXXXX

  2. Hæ, fyrst og fremst takk kærlega fyrir viðleitni þína, ég reyndi að nota þetta með Asp.net en virkaði ekki, ég er að nota

    í staðinn fyrir tag, og það virkaði ekki, einhverjar uppástungur?!

  3. „P@s$w0rD“ sýnir sterkt, þó það myndi klikka nokkuð fljótt með orðabókarárás...
    Til að nota slíkan eiginleika á faglega lausn tel ég mikilvægt að sameina þetta reiknirit með orðabókaskoðun.

  4. Takk fyrir þennan litla kóða, ég get nú notað hann til að prófa styrk lykilorðsins þegar gestir mínir slá inn lykilorðin sín,

  5. getur einhver sagt afhverju það virkaði ekki hjá mér..

    ég afritaði allan kóðann og paste hann í notepad++ , en það virkar alls ekki ?
    Vinsamlegast hjálpaðu mér..

  6. Þessi tegund af „styrkleikaprófi“ leiðir fólk inn á mjög hættulega braut. Það metur fjölbreytileika stafa yfir lengd lykilorða, sem leiðir til þess að styttri, fjölbreyttari lykilorð eru sterkari en lengri, minna fjölbreytt lykilorð. Það er rökvilla sem mun koma notendum þínum í vandræði ef þeir standa einhvern tíma frammi fyrir alvarlegri reiðhesturógn.

    1. Ég er ekki ósammála, Jordan! Dæmið var einfaldlega sett fram sem dæmi um handritið. Mín tilmæli til fólks eru að nota lykilorðastjórnunartól til að búa til sjálfstæðar lykilorð fyrir hvaða síðu sem er einstök fyrir hana. Takk!

  7. Þú ert lifandi bjargvættur! Ég var að flokka strengi vinstri hægri og miðju og hélt að það væri betri leið og fann kóðann þinn með Regex. Var fær um að tinkle með það fyrir síðuna mína ... Þú hefur ekki hugmynd um hversu mikið þetta hjálpaði. Takk kærlega Douglas!!

Hvað finnst þér?

Þessi síða notar Akismet til að draga úr ruslpósti. Lærðu hvernig ummæli þín eru unnin.

tengdar greinar