Tein tutkimusta löytääksesi hyvän esimerkin salasanan vahvuuden tarkistimesta, joka käyttää JavaScript että Säännölliset lausekkeet (Regex). Työssämme olevassa sovelluksessa teemme postin takaisin salasanan vahvuuden tarkistamiseksi 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 joitain hienoja säännöllisiä lausekkeita, jotka etsivät pituuden, merkkien ja symbolien yhdistelmää. Howver, koodi oli hieman liiallinen makuuni ja räätälöity .NET: lle. Joten yksinkertaistin koodia ja laitoin sen JavaScriptiin. Tämä tekee siitä vahvan 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.
Kirjoita salasana
Tässä on koodi
- Säännölliset lausekkeet tee upea työ koodin pituuden minimoimiseksi:
- Lisää merkkejä - Jos pituus on alle 8 merkkiä.
- Heikko - Jos pituus on alle 10 merkkiä eikä sisällä symboleiden, kirjainten ja tekstien yhdistelmää.
- keskikokoinen - Jos pituus on 10 merkkiä tai enemmän ja siinä on yhdistelmä symboleja, kirjaimia, tekstiä.
- Vahva - Jos pituus on vähintään 14 merkkiä ja siinä on yhdistelmä symboleja, kirjaimia, tekstiä.
<script language="javascript">
function passwordChanged() {
var strength = document.getElementById('strength');
var strongRegex = new RegExp("^(?=.{14,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
var mediumRegex = new RegExp("^(?=.{10,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
var enoughRegex = new RegExp("(?=.{8,}).*", "g");
var pwd = document.getElementById("password");
if (pwd.value.length == 0) {
strength.innerHTML = 'Type Password';
} else if (false == enoughRegex.test(pwd.value)) {
strength.innerHTML = 'More Characters';
} else if (strongRegex.test(pwd.value)) {
strength.innerHTML = '<span style="color:green">Strong!</span>';
} else if (mediumRegex.test(pwd.value)) {
strength.innerHTML = '<span style="color:orange">Medium!</span>';
} else {
strength.innerHTML = '<span style="color:red">Weak!</span>';
}
}
</script>
<input name="password" id="password" type="text" size="15" maxlength="100" onkeyup="return passwordChanged();" />
<span id="strength">Type Password</span>
Paranna salasanapyyntöäsi
On tärkeää, että et vain vahvista salasanan rakennetta Javascriptissasi. Tämän avulla kuka tahansa, jolla on selaimen kehitystyökalut, voi ohittaa komentosarjan ja käyttää haluamaasi salasanaa. Sinun tulisi AINA käyttää palvelinpuolen tarkistusta vahvistaaksesi salasanan vahvuus ennen kuin tallennat sen alustallesi.
Löysin toisen salasanan vahvuuden tarkistimet. Heidän algoritmi perustuu sanakirjaan. Kokeile sitä osoitteessa microsoft.com - http://www.microsoft.com/protect/yourself/password/checker.mspx ja yksi osoitteessa itsimpl.com - http://www.itsimpl.com
KIITOS! KIITOS! KIITOS! Olen hölmöillut 2 viikkoa pirun salasanan vahvuuskoodilla muilta verkkosivustoilta ja vedän hiukseni ulos. Sinun on lyhyt, toimii aivan kuten minä haluan ja mikä parasta, javascript-noviisi on helppo muokata! Halusin kaapata voimaa koskevan päätöksen eikä antaa lomakkeen lähettää päivittää käyttäjän salasanaa, ellei se täytä vahvuustestiä. Toisten ihmisten koodi oli liian monimutkainen tai ei toiminut oikein tai jokin muu. Minä rakastan sinua! XXXXX
Ole hyvä! Ole hyvä! Ole hyvä!
Minäkin rakastan sinua!
kiitos jumalalle ihmisistä, jotka pystyvät todella kirjoittamaan koodinpätkän oikein.
Oli samanlainen kokemus kuin Janis.
Tämä toimii heti laatikosta, joka on täydellinen kaltaisilleni ihmisille, jotka eivät voi koodata javascriptiä!
Kiitos, että kirjoitit koodinpätkän, joka tekee juuri sen, mitä purkissa on sanottu!
Hei, ensinnäkin kiitos paljon ur-ponnisteluistani, yritin käyttää tätä Asp.net: n kanssa, mutta ei toiminut, käytän
tagin sijasta, eikä se toiminut, ehdotuksia ?!
Nisreeniin: korostetun ruudun koodi ei toimi cut'n'-liittämisen kanssa. Yksittäinen lainaus on sekaisin. Esittelylinkin koodi on kuitenkin hieno.
Hei, pidän käsikirjoituksestasi! Käännin sen hollanti, ja lähetin sen foorumilleni täällä!
hyvää työtä! miten se tulisi tehdä asiakkaalle
erittäin mukava työ.
Kiitos Douglas, käytän sitä nykyisessä työssäni.
“P @ s $ w0rD” näkyy voimakkaana, vaikka se murtuisi melko nopeasti sanakirjan hyökkäyksellä…
Jotta tällainen ominaisuus voidaan ottaa käyttöön ammattimaisessa ratkaisussa, mielestäni on tärkeää yhdistää tämä algoritmi sanakirjan tarkistukseen.
Toimii erinomaisesti XULRunnerissa pienellä muutoksella. Kiitos!
Kiitos tästä pienestä koodista. Voin käyttää sitä nyt salasanani vahvuuden testaamiseen, kun kävijät lähettävät salasanansa,
Suuri koodaus
Käsikirjoitus oli super .Olin käyttänyt nykyisessä projektissamme
Kiitos jakamisesta!
Niin yksinkertainen ja upea ilme. Minä testaajana sain TC: tni tästä lausekkeesta.
Kiitos että jaoit. Sinulla on muutama rikkinäinen linkki tällä sivulla. FYI.
Voisiko joku kertoa, miksi se ei toiminut minun ..
kopioin kaiken koodin ja liitin sen notepad ++: iin, mutta se ei toimi ollenkaan?
auttaisitko minua..
Fantastinen!!!!! Kiitos.
Hienoa kaveria! Yksinkertainen ja tehokas. Kiitos paljon jakamisesta!
kiitämme
Hyvä, thx. Mutta… Mikä on esimerkki VAHVA PW? 'en löydä sitä! - {}
Tämäntyyppinen "vahvuuden tarkistaja" johtaa ihmiset erittäin vaaralliselle tielle. Se arvostaa merkkien monimuotoisuuden yli salasanan pituuden, mikä johtaa siihen, että lyhyemmät, monimuotoisemmat salasanat ovat vahvempia kuin pidemmät, vähemmän erilaiset salasanat. Se on harhaluulo, joka saa käyttäjät ongelmiin, jos heillä on koskaan vakava hakkerointi uhka.
En ole eri mieltä, Jordan! Esimerkki esitettiin yksinkertaisesti esimerkkinä käsikirjoituksesta. Suosittelen ihmisille, että salasananhallintatyökalun avulla luodaan itsenäiset tunnuslauseet kaikille sivustoille, jotka ovat ainutlaatuisia. Kiitos!
kiitos, se toimii hyvin.
Kiitos, että se toimii hyvin
Olen todella kiitollinen siitä, että sinua on etsinyt tätä monta kertaa, mutta viimeinkin sain viestisi ja olen todella järkyttynyt. KIITOS
Kiitos kaveri. Juuri otettu käyttöön verkkosivustollani ja se toimii erittäin hyvin.
Rakasta kuulla se! Olet tervetullut!
Kiitos, että jaoit! Olen pyrkinyt parantamaan salasanan vahvuutta verkkosivustollamme ja tämä toimi haluamallani tavalla. Kiitos paljon!
Kiitos, toivottavasti pystyt mukauttamaan sitä tarpeen mukaan.