Llwyfannau CRM a DataMarchnata E-bost ac Awtomeiddio Marchnata E-bost

Gwirio Cryfder Cyfrinair gyda JavaScript neu jQuery ac Ymadroddion Rheolaidd (Gydag Enghreifftiau Ochr Gweinydd, Rhy!)

Roeddwn yn gwneud rhywfaint o ymchwil ar ddod o hyd i enghraifft dda o wiriwr Cryfder Cyfrinair sy'n ei ddefnyddio Javascript ac Mynegiadau Rheolaidd (regex). Yn y cais yn fy ngwaith, rydym yn gwneud post yn ôl i wirio cryfder y cyfrinair ac mae'n eithaf anghyfleus i'n defnyddwyr.

Beth yw Regex?

Mae mynegiad rheolaidd yn ddilyniant o gymeriadau sy'n diffinio patrwm chwilio. Fel arfer, defnyddir patrymau o'r fath gan algorithmau chwilio llinyn ar gyfer dod o hyd i or dod o hyd i a disodli gweithrediadau ar dannau, neu ar gyfer dilysu mewnbwn. 

Yn bendant, nid yw'r erthygl hon i ddysgu ymadroddion rheolaidd i chi. Dim ond gwybod y bydd y gallu i ddefnyddio Mynegiadau Rheolaidd yn symleiddio'ch datblygiad yn llwyr wrth i chi chwilio am batrymau mewn testun. Mae'n bwysig nodi hefyd bod y rhan fwyaf o ieithoedd datblygu wedi gwneud y defnydd gorau o fynegiant yn rheolaidd ... felly yn hytrach na dosrannu a chwilio llinynnau gam wrth gam, mae Regex fel arfer yn llawer cyflymach o ran y gweinydd a'r cleient.

Fe wnes i chwilio'r we dipyn cyn i mi ddod o hyd enghraifft o rai Mynegiadau Rheolaidd gwych sy'n edrych am gyfuniad o hyd, cymeriadau, a symbolau. Fodd bynnag, roedd y cod ychydig yn ormodol at fy chwaeth ac wedi'i deilwra ar gyfer .NET. Felly yr wyf yn symleiddio'r cod a'i roi yn JavaScript. Mae hyn yn ei gwneud yn ddilysu cryfder y cyfrinair mewn amser real ar borwr y cleient cyn ei bostio'n ôl ... ac yn darparu rhywfaint o adborth i'r defnyddiwr ar gryfder y cyfrinair.

Cyfrinair Math A.

Gyda phob strôc o'r bysellfwrdd, profir y cyfrinair yn erbyn y mynegiant rheolaidd ac yna rhoddir adborth i'r defnyddiwr mewn rhychwant oddi tano.

Swyddogaeth Cryfder Cyfrinair JavaScript

Roedd Mynegiadau Rheolaidd gwneud gwaith gwych o leihau hyd y cod. Mae'r swyddogaeth Javascript hon yn gwirio cryfder cyfrinair ac a yw'n hawdd, yn ganolig, yn anodd neu'n anodd iawn ei ddyfalu ei rwystro. Wrth i'r person deipio, mae'n dangos awgrymiadau ar ei annog i fod yn gryfach. Mae'n dilysu'r cyfrinair yn seiliedig ar:

  • Hyd – Os yw'r hyd yn llai neu'n fwy nag 8 nod.
  • Achos Cymysg – Os oes gan y cyfrinair nodau priflythrennau a llythrennau bach.
  • Niferoedd - Os yw'r cyfrinair yn cynnwys rhifau.
  • Cymeriadau Arbennig - Os yw'r cyfrinair yn cynnwys nodau arbennig.

Mae'r swyddogaeth yn dangos yr anhawster yn ogystal â rhai awgrymiadau ar galedu'r cyfrinair ymhellach.

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

Os hoffech chi ddiweddaru lliw y domen, gallwch chi wneud hynny hefyd trwy ddiweddaru'r cod ar ôl y // Return results llinell.

// Get the paragraph element
  var strengthElement = document.getElementById("passwordStrength");

  // Return results
  if (strength < 2) {
    strengthElement.textContent = "Easy to guess. " + tips;
    strengthElement.style.color = "red";
  } else if (strength === 2) {
    strengthElement.textContent = "Medium difficulty. " + tips;
    strengthElement.style.color = "orange";
  } else if (strength === 3) {
    strengthElement.textContent = "Difficult. " + tips;
    strengthElement.style.color = "black";
  } else {
    strengthElement.textContent = "Extremely difficult. " + tips;
    strengthElement.style.color = "green";
  }

jQuery Swyddogaeth Cryfder Cyfrinair

Gyda jQuery, nid oes yn rhaid i ni ysgrifennu'r ffurflen gyda diweddariad ar fewnbwn mewn gwirionedd:

<form>
    <label for="password">Enter password:</label>
    <input type="password" id="password">
    <p id="password-strength"></p>
</form>

Gallwn hefyd addasu lliw y negeseuon os hoffem. 

$(document).ready(function() {
    $('#password').on('input', function() {
        var password = $(this).val();
        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. ";
        }
  
        // Update the text and color based on the password strength
        var passwordStrengthElement = $('#password-strength');
        if (strength < 2) {
            passwordStrengthElement.text("Easy to guess. " + tips);
            passwordStrengthElement.css('color', 'red');
        } else if (strength === 2) {
            passwordStrengthElement.text("Medium difficulty. " + tips);
            passwordStrengthElement.css('color', 'orange');
        } else if (strength === 3) {
            passwordStrengthElement.text("Difficult. " + tips);
            passwordStrengthElement.css('color', 'black');
        } else {
            passwordStrengthElement.text("Extremely difficult. " + tips);
            passwordStrengthElement.css('color', 'green');
        }
    });
});

Caledu Eich Cais Cyfrinair

Mae'n hanfodol nad ydych chi'n dilysu'r gwaith adeiladu cyfrinair yn eich Javascript yn unig. Byddai hyn yn galluogi unrhyw un sydd ag offer datblygu porwr i osgoi'r sgript a defnyddio pa gyfrinair bynnag yr hoffent. Dylech BOB AMSER ddefnyddio gwiriad ochr gweinydd i ddilysu cryfder y cyfrinair cyn ei storio yn eich platfform.

Swyddogaeth PHP Ar gyfer Cryfder Cyfrinair

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

Swyddogaeth Python Ar gyfer Cryfder Cyfrinair

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# Swyddogaeth Ar gyfer Cryfder Cyfrinair

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

Swyddogaeth Java Ar gyfer Cryfder Cyfrinair

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

Ac os ydych chi'n chwilio am generadur cyfrinair gwych yn unig, rydw i wedi adeiladu offeryn ar-lein bach neis ar gyfer hynny.

Generadur Cyfrinair

Douglas Karr

Douglas Karr yw sylfaenydd y Martech Zone ac arbenigwr cydnabyddedig ar drawsnewid digidol. Mae Douglas wedi helpu i ddechrau sawl cwmni newydd llwyddiannus ar gyfer MarTech, wedi cynorthwyo gyda’r diwydrwydd dyladwy o dros $5 bil mewn caffaeliadau a buddsoddiadau Martech, ac mae’n parhau i lansio ei lwyfannau a’i wasanaethau ei hun. Mae'n gyd-sylfaenydd Highbridge, cwmni ymgynghori trawsnewid digidol. Mae Douglas hefyd yn awdur cyhoeddedig canllaw Dummie a llyfr arweinyddiaeth busnes.

Erthyglau Perthnasol

33 Sylwadau

  1. DIOLCH! DIOLCH! DIOLCH! Rydw i wedi bod yn twyllo o gwmpas am 2 wythnos gyda cod cryfder cyfrinair damn o wefannau eraill a thynnu fy ngwallt allan. Mae'r eiddoch yn fyr, mae'n gweithio yn union fel rydw i eisiau a gorau oll, hawdd i ddechreuwr javascript ei addasu! Roeddwn i eisiau dal y dyfarniad cryfder a pheidio â gadael i'r ffurflen bostio i ddiweddaru cyfrinair y defnyddiwr mewn gwirionedd oni bai ei fod yn bodloni'r prawf cryfder. Roedd cod pobl eraill yn rhy gymhleth neu ddim yn gweithio'n iawn neu rywbeth arall. Rwy'n dy garu di! XXXXXX

  2. Helo, yn gyntaf oll diolch yn fawr am eich ymdrechion, ceisiais ddefnyddio hwn gydag Asp.net ond heb weithio, rwy'n ei ddefnyddio

    yn lle tag, ac ni weithiodd, unrhyw awgrymiadau?!

  3. I Nisreen: nid yw'r cod yn y blwch wedi'i amlygu yn gweithio gyda toriad a phast. Mae'r dyfyniad sengl yn ddryslyd. Mae cod y ddolen arddangos yn iawn serch hynny.

  4. Mae “P @ s $ w0rD” yn dangos yn gryf, er y byddai’n cael ei gracio’n weddol gyflym gydag ymosodiad geiriol…
    I ddefnyddio nodwedd o'r fath ar ddatrysiad proffesiynol, credaf ei bod yn bwysig cyfuno'r algorithm hwn â gwiriad geiriol.

  5. a all rhywun ddweud, pam na weithiodd fy un i.

    copïais yr holl god, a'i gludo i notepad ++, ond nid yw'n gweithio o gwbl?
    helpwch fi os gwelwch yn dda.

  6. Mae'r math hwn o “wiriwr cryfder” yn arwain pobl i lawr llwybr peryglus iawn. Mae'n gwerthfawrogi amrywiaeth cymeriad dros hyd cyfrinair, gan ei arwain i raddio cyfrineiriau byrrach, mwy amrywiol fel rhai cryfach na chyfrineiriau hirach, llai amrywiol. Mae hynny'n wallgofrwydd a fydd yn peri trafferth i'ch defnyddwyr os byddant byth yn wynebu bygythiad hacio difrifol.

    1. Dwi ddim yn anghytuno, Jordan! Yn syml, rhoddwyd yr enghraifft allan fel enghraifft o'r sgript. Fy argymhelliad i bobl yw defnyddio teclyn rheoli cyfrinair i greu cyfeirnodau annibynnol ar gyfer unrhyw wefan sy'n unigryw iddo. Diolch!

  7. Rwy'n gwerthfawrogi eich bod chi'n rhannu! Wedi bod yn edrych i wella cryfder cyfrinair ar ein gwefan ac roedd yr un hon yn gweithio fel yr oeddwn i eisiau. Diolch yn fawr iawn!

  8. Rydych chi'n arbedwr byw! Roeddwn yn dosrannu tannau i'r chwith ac i'r canol ac roeddwn i'n meddwl bod ffordd well a dod o hyd i'ch darn o god gan ddefnyddio Regex. Yn gallu tincio ag ef ar gyfer fy safle ... Nid oes gennych unrhyw syniad faint a helpodd hyn. Diolch gymaint Douglas !!

Beth ydych chi'n feddwl?

Mae'r wefan hon yn defnyddio Akismet i leihau sbam. Dysgwch sut mae eich data sylwadau yn cael ei brosesu.

Cau

Adblock Wedi'i Ganfod

Martech Zone yn gallu darparu'r cynnwys hwn i chi heb unrhyw gost oherwydd ein bod yn rhoi arian i'n gwefan trwy refeniw hysbysebu, dolenni cyswllt, a nawdd. Byddem yn gwerthfawrogi petaech yn cael gwared ar eich rhwystrwr hysbysebion wrth i chi edrych ar ein gwefan.