CRM û Platformên DaneyêKirrûbirra E-nameyê & Otomasyona Kirrûbirra Email

Hêza şîfreyê bi JavaScript an jQuery û bi vegotinên birêkûpêk kontrol bikin (Bi Mînakên Server-Side re jî!)

Min li ser dîtina nimûneyek baş a venêrana Hêza Passwordîfreyê ya ku bikar tîne hin lêkolîn dikir JavaScript û Bêjeyên Rêkûpêk (regex). Di serîlêdana karê min de, em ji bo verastkirina hêza şîfreyê postek paşde dikin û ew ji bo bikarhênerên me pir nerehet e.

Regex çi ye?

Vegotinek rêkûpêk rêzeyek karakterên ku rengek lêgerînê diyar dikin e. Bi gelemperî, nimûneyên weha ji hêla algorîtmayên lêgerîna string ve têne bikar anîn dîtin or bibînin û veguherînin operasyonên li ser têlan, an jî ji bo pejirandina ketinê. 

Ev gotar bê guman ne ew e ku hûn vegotinên rêkûpêk fêr nekin. Tenê bizanibin ku gava ku hûn li qaliban di nivîsê de digerin dê kapasîteya karanîna Bêjeyên Rêkûpêk bi tevahî geşedana we hêsan bike. Her weha girîng e ku meriv bibîne ku piraniya zimanên pêşveçûnê karanîna vegotina birêkûpêk çêtirîn kirine ... ji ber vê yekê ji bila parsek û lêgerîn li têlan gav bi gav, Regex bi gelemperî hem server hem jî aliyê xerîdar zûtir e.

Berî ku ez bibînim min hinekî li tevn geriya nimûne ji hin Gotinên Birêkûpêk ên mezin ên ku li berhevokek dirêj, karakter û sembolan digerin. Lêbelê, kod ji bo tama min hinekî zêde bû û ji bo .NET-ê hatî çêkirin. Ji ber vê yekê min kodê hêsan kir û ew xist nav JavaScriptê. Ev dihêle ku ew hêza şîfreyê di demek rast de li ser geroka xerîdar rast bike berî ku wê paşde bişîne… û li ser hêza şîfreyê hin bertek ji bikarhêner re peyda dike.

Passwordîfreyek A binivîse

Bi her lêdana klavyeyê re, şîfre li dijî derbirîna rêkûpêk tê ceribandin û piştre di binê wê de şûnda ji bikarhêner re tê peyda kirin.

Fonksiyona Hêza Şîfreya JavaScriptê

Ew Bêjeyên Rêkûpêk ji bo kêmkirina dirêjahiya kodê karek fantastîk bikin. Vê fonksiyona Javascript hêza şîfreyek kontrol dike û gelo hilanîna wê hêsan, navîn, dijwar, an zehf dijwar e ku meriv texmîn bike. Gava ku mirov tîp dike, ew serişteyên li ser teşwîqkirina wê ya bihêztir nîşan dide. Ew şîfreya li ser bingeha:

  • Dirêjî - Ger dirêjî di binê 8 tîpan de be.
  • Mixed Case - Heke şîfre hem tîpên jor û hem jî yên piçûk hebin.
  • Numbers - Ger şîfreya hejmaran hebe.
  • Karakterên Taybet - Heke şîfre tîpên taybetî hene.

Fonksiyon zehmetiyê û her weha hin serişteyên li ser hişkkirina şîfreyê bêtir nîşan dide.

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

Heke hûn dixwazin rengê tîpê nûve bikin, hûn dikarin wiya jî bi nûvekirina kodê piştî nûjen bikin // Return results xet.

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

Fonksiyona Hêza Şîfreya jQuery

Bi jQuery re, bi rastî ne hewce ye ku em formê bi nûvekirinek oninput re binivîsin:

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

Ger em bixwazin em dikarin rengê peyaman jî biguherînin. 

$(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');
        }
    });
});

Daxwaza Passwordîfreya Xwe Hundir Dike

Pêdivî ye ku hûn ne tenê di nav Javascript-a xwe de çêkirina şîfreyê erê bikin. Ev ê dihêle ku her kesê ku amûrên geşedana gerokê heye nivisandinê derbas bike û şîfreya ku ew dixwazin bi kar bîne. Pêdivî ye ku hûn her dem ji bo pejirandina hêza şîfreyê berî ku ew di platforma xwe de tomar nekin, her gav kontrola server-ê bikar bînin.

Fonksiyona PHP-ê Ji bo Hêza Şîfreyê

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

Fonksiyona Python Ji bo Hêza Şîfreyê

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"

Fonksiyon C# Ji bo Hêza Şîfreyê

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

Fonksiyona Java Ji bo Hêza Şîfreyê

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

Û heke hûn tenê li hilberînerek şîfreyek mezin digerin, min ji bo wê amûrek piçûk a serhêl a xweş çêkiriye.

Generatorê Passwordîfreyê

Douglas Karr

Douglas Karr damezrênerê Martech Zone û pisporek naskirî ya li ser veguherîna dîjîtal. Douglas alîkariya destpêkirina çend destpêkek serfiraz a MarTech kir, di kirîn û veberhênanên Martech de zêdetirî 5 mîlyar dolar alîkarî kir, û berdewam dike ku platform û karûbarên xwe bide destpêkirin. Ew hev-damezrîner e Highbridge, fîrmayek şêwirmendiya veguherîna dîjîtal. Douglas di heman demê de nivîskarek çapkirî ya rêberê Dummie û pirtûkek serokatiya karsaziyê ye.

Zimanî babet Related

33 Comments

  1. SPAS DIKIM! SPAS DIKIM! SPAS DIKIM! Ez 2 hefte bi koda hêza şîfreya lanetkirî ya ji malperên din dixapim û porê xwe dikişînim. Ya te kurt e, mîna ku ez dixwazim dixebite û ya herî baş, ji bo nûvekarek javascript-ê hêsan e ku meriv biguhezîne! Min dixwest ku biryara hêzê bigirim û nehêlim ku form bi rastî şîfreya bikarhêner nûve bike heya ku ew ceribandina hêzê nebîne. Koda kesên din pir tevlihev bû an rast nexebitî an tiştek din. Ez hej te dikim! XXXX

  2. Silav, berî her tiştî gelek spas ji bo hewildanên we, min hewl da ku vê bi Asp.net re bikar bînim lê nexebitî, ez bikar tînim

    li şûna etîketê, û ew nexebitî, ti pêşniyarek?!

  3. "P@s$w0rD" bi hêz xuya dike, her çend ew ê bi êrîşek ferhengî bi lez û bez were şikandin…
    Ji bo bicîhkirina taybetmendiyek wusa li ser çareseriyek pîşeyî, ez bawer dikim girîng e ku meriv vê algorîtmayê bi kontrolek ferhengê re bike yek.

  4. Spas ji bo vê koda piçûk ez nuha dikarim wê bikar bînim da ku hêza şîfreya xwe biceribînim dema ku mêvanên min şîfreyên xwe têkevin,

  5. kes dikare bêje, çima ew nexebitî ya min..

    Min hemî kod kopî kir, û wê li notepad++ bikirtînin, lê ew qet naxebite?
    ji kerema xwe alîkariya min bike..

  6. Ev celeb "kontrolkerê hêzê" mirovan ber bi rêyek pir xeternak ve dibe. Ew cihêrengiya karakterê li ser dirêjahiya şîfreya derbasbûnê dinirxîne, rê dide wê ku şîfreyên kurttir, cihêrengtir ji şîfreyên dirêjtir û cihêreng bihêztir binirxîne. Ew xeletiyek e ku dê bikarhênerên we bikeve nav tengasiyê ger ew carî bi xetereyek ciddî ya hackkirinê re rû bi rû bimînin.

    1. Ez li hev nakim, Urdun! Mînak bi tenê wekî mînakek senaryoyê hate danîn. Pêşniyara min ji mirovan re ev e ku amûrek rêveberiya şîfreyê bikar bînin da ku ji bo her malperek ku ji wê re yekta ne şîfreyên serbixwe biafirînin. Spas!

  7. Ez bi rastî spas dikim ku hûn gelek caran li vê yekê geriyam lê herî dawî min posta we girt û bi rastî matmayî me. SIPAS JI WERE

  8. Hûn rizgarkerek zindî ne! Min rêzikên çepê rast û navend pars dikir û fikirîm ku rêyek çêtir heye û perçeya koda we bi karanîna Regex dît. Dikaribû ji bo malpera min bi wê veşêre… Hûn nizanin ka ev çiqas alîkarî kir. Gelek spas Douglas !!

Hûn çi difikirin?

Ev malpera Akismet bikar tîne ku ji bo kêmkirina spam. Zêdetir agahdariya danûstandinên we çawa pêvajoy kirin.