Gwiriwch Gryfder Cyfrinair gyda JavaScript a Mynegiadau Rheolaidd

Gwiriwch Gryfder Cyfrinair gyda JavaScript a Mynegiadau Rheolaidd

Roeddwn yn gwneud rhywfaint o ymchwil ar ddod o hyd i enghraifft dda o wiriwr Cryfder Cyfrinair sy'n ei ddefnyddio Javascript a Mynegiadau Rheolaidd (Regex). Yn y cymhwysiad yn fy ngwaith, rydym yn gwneud post yn ôl i wirio cryfder 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. Sut bynnag, roedd y cod ychydig yn ormodol i'm chwaeth ac wedi'i deilwra ar gyfer. NET. Felly mi wnes i symleiddio'r cod a'i roi yn JavaScript. Mae hyn yn ei gwneud yn dilysu cryfder cyfrinair mewn amser real ar borwr y cleient cyn ei bostio yn ô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.




Teip Cyfrinair

Dyma'r Cod

Mae'r Mynegiadau Rheolaidd gwnewch waith gwych o leihau hyd y cod:

  • Mwy o gymeriadau - Os yw'r hyd o dan 8 nod.
  • Gwan - Os yw'r hyd yn llai na 10 nod ac nad yw'n cynnwys cyfuniad o symbolau, capiau, testun.
  • Canolig - Os yw'r hyd yn 10 nod neu fwy ac mae ganddo gyfuniad o symbolau, capiau, testun.
  • Strong - Os yw'r hyd yn 14 nod neu fwy ac mae ganddo gyfuniad o symbolau, capiau, testun.

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

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.

34 Sylwadau

  1. 1
  2. 2

    DIOLCH! DIOLCH! DIOLCH! Rydw i wedi bod yn twyllo o gwmpas am bythefnos gyda chod cryfder cyfrinair damn o wefannau eraill ac yn tynnu fy ngwallt allan. Yr eiddoch yn fyr, yn gweithio yn union fel yr wyf ei eisiau ac yn anad dim, yn hawdd i ddechreuwr javascript ei addasu! Roeddwn i eisiau dal y rheithfarn cryfder a pheidio â gadael i'r ffurflen bostio diweddaru cyfrinair y defnyddiwr oni bai ei fod yn cwrdd â'r prawf cryfder. Roedd cod pobl eraill yn rhy gymhleth neu ddim yn gweithio'n iawn na rhywbeth arall. Rwy'n dy garu di! XXXXX

  3. 4

    diolch i dduw am bobl sy'n gallu ysgrifennu darn o god yn iawn mewn gwirionedd.
    Wedi cael yr un profiad â Janis.

    Mae hyn yn gweithio allan o'r bocs sy'n berffaith i bobl fel fi nad ydyn nhw'n gallu cod javascript!

  4. 5
  5. 6

    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?!

  6. 7

    I Nisreen: nid yw'r cod yn y blwch a amlygwyd yn gweithio gyda phapur cut'n'pas. Mae'r dyfynbris sengl yn llanast. Mae cod y ddolen arddangos yn iawn serch hynny.

  7. 8
  8. 9
  9. 10
  10. 11

    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.

  11. 12
  12. 13

    Diolch am y cod bach hwn, gallaf nawr ei ddefnyddio i brofi cryfder fy nghyfrinair pan fydd fy ymwelwyr yn nodi eu cyfrineiriau,

  13. 14
  14. 15
  15. 16
  16. 17
  17. 18
  18. 19

    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.

  19. 20
  20. 21
  21. 22
  22. 23
  23. 24

    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.

    • 25

      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!

  24. 26
  25. 27
  26. 28

    Rwy'n gwerthfawrogi'n fawr eich bod wedi cael eich chwilio hyn lawer gwaith ond o'r diwedd cefais eich post ac rwyf wedi gwirioni. DIOLCH

  27. 29
  28. 31

    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!

  29. 33

    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.