CRM ja tietoalustatSähköpostimarkkinointi ja automaatio

Tarkista salasanan vahvuus JavaScriptillä tai jQuerylla ja säännöllisillä lausekkeilla (myös palvelinpuolen esimerkeillä!)

Tein tutkimusta löytääksesi hyvän esimerkin salasanan vahvuuden tarkistimesta, joka käyttää JavaScript ja Säännölliset lausekkeet (regex). Työssäni sovelluksessa teemme takaisin postauksen varmistaaksemme salasanan vahvuuden ja se on melko hankalaa käyttäjillemme.

Mikä on Regex?

Säännöllinen lauseke on merkkijono, joka määrittää hakumallin. Yleensä tällaisia ​​malleja käytetään merkkijonohakualgoritmeilla löytää or Etsi ja korvaa merkkijonotoiminnot tai syötteen vahvistus. 

Tämä artikkeli ei todellakaan ole opettaa sinulle säännöllisiä ilmauksia. Tiedä vain, että kyky käyttää säännöllisiä lausekkeita yksinkertaistaa kehitystäsi, kun etsit kuvioita tekstistä. On myös tärkeää huomata, että useimmat kehityskielet ovat optimoineet säännöllisen lausekkeen käytön… joten Regex on tyypillisesti paljon nopeampi sekä palvelin- että asiakaspuolella sen sijaan, että jäsennettäisiin ja etsitään merkkijonoja vaihe vaiheelta.

Etsin verkosta melko vähän ennen kuin löysin esimerkki joistakin hienoista säännöllisistä lausekkeista, jotka etsivät pituuden, merkkien ja symbolien yhdistelmää. Koodi oli kuitenkin hieman liiallinen minun makuuni ja räätälöity .NETille. Joten yksinkertaistin koodia ja laitoin sen JavaScriptiin. Tämän ansiosta se vahvistaa salasanan vahvuuden reaaliajassa asiakkaan selaimessa ennen sen lähettämistä takaisin… ja antaa käyttäjälle palautetta salasanan vahvuudesta.

Kirjoita salasana

Jokaisella näppäimistön painalluksella salasana testataan säännöllisen lausekkeen suhteen, ja sitten palautetta annetaan käyttäjälle sen alapuolella.

JavaScript-salasanan vahvuustoiminto

- Säännölliset lausekkeet tehdä fantastista työtä koodin pituuden minimoimiseksi. Tämä JavaScript-toiminto tarkistaa salasanan vahvuuden ja sen, onko sen salaaminen helppoa, keskitasoa, vaikeaa vai erittäin vaikea arvata. Kun henkilö kirjoittaa, se näyttää vinkkejä sen rohkaisemiseksi olemaan vahvempi. Se vahvistaa salasanan seuraavien perusteella:

  • Pituus – Jos pituus on alle tai yli 8 merkkiä.
  • Mixed Case – Jos salasanassa on sekä isoja että pieniä kirjaimia.
  • Numerot – Jos salasana sisältää numeroita.
  • Erikoismerkit – Jos salasana sisältää erikoismerkkejä.

Toiminto näyttää vaikeuden sekä vinkkejä salasanan edelleen kovettamiseksi.

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

Jos haluat päivittää kärjen värin, voit tehdä sen myös päivittämällä koodin jälkeen // Return results linja.

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

jQueryn salasanan vahvuustoiminto

jQuerylla meidän ei itse asiassa tarvitse kirjoittaa lomaketta oninput-päivityksellä:

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

Voimme myös halutessasi muokata viestien väriä. 

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

Paranna salasanapyyntöäsi

On tärkeää, että et vain vahvista salasanan rakennetta JavaScriptissäsi. Tämä antaisi kaikille selaimen kehitystyökaluja käyttäville mahdollisuuden ohittaa komentosarjan ja käyttää haluamaansa salasanaa. Sinun tulee AINA käyttää palvelinpuolen tarkistusta salasanan vahvuuden vahvistamiseen ennen sen tallentamista alustallesi.

PHP-toiminto salasanan vahvuutta varten

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-funktio salasanan vahvuutta varten

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#-toiminto salasanan vahvuutta varten

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-toiminto salasanan vahvuutta varten

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

Ja jos etsit vain loistavaa salasanageneraattoria, olen rakentanut sitä varten mukavan pienen verkkotyökalun.

Salasanan luonti

Douglas Karr

Douglas Karr on CMO of OpenINSIGHTS ja perustaja Martech Zone. Douglas on auttanut kymmeniä menestyneitä MarTech-startuppeja, auttanut yli 5 miljardin dollarin due diligence -tarkastuksessa Martechin hankinnoissa ja investoinneissa ja avustaa edelleen yrityksiä niiden myynti- ja markkinointistrategioiden toteuttamisessa ja automatisoinnissa. Douglas on kansainvälisesti tunnustettu digitaalisen transformaation ja MarTechin asiantuntija ja puhuja. Douglas on myös julkaissut Dummie's-oppaan ja yritysjohtajuuskirjan.

Aiheeseen liittyvät artikkelit

Takaisin alkuun -painiketta
lähellä

Adblock havaittu

Martech Zone pystyy tarjoamaan sinulle tämän sisällön veloituksetta, koska ansaitsemme sivustomme mainostulojen, kumppanilinkkien ja sponsoroinnin kautta. Olisimme kiitollisia, jos poistaisit mainosten esto-ohjelman, kun katselet sivustoamme.