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 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 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.
- Cryf - 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.
Fe wnes i ddod o hyd i wirwyr cryfder cyfrinair arall. Eu algorithm yn seiliedig ar eiriadur geiriau. Rhowch gynnig ar un yn microsoft.com - http://www.microsoft.com/protect/yourself/password/checker.mspx ac un yn itsimpl.com - http://www.itsimpl.com
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
Croeso! Croeso! Croeso!
Rwy'n dy garu di hefyd!
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!
Diolch am ysgrifennu darn o god sy'n gwneud yn union yr hyn y mae'n ei ddweud ar y can!
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?!
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.
Hei, dwi'n hoffi'ch sgript! Fe wnes i ei gyfieithu i'r Iseldiroedd, a'i bostio yn fy fforwm yma!
swydd ardderchog! yn union sut y dylid ei wneud ar y cleient
swydd braf iawn….
Diolch Douglas, rwy'n ei ddefnyddio ar gyfer fy swydd bresennol.
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.
Yn gweithio'n wych yn XULRunner gydag ychydig yn newid o gwmpas. Diolch!
Diolch am y cod bach hwn, gallaf nawr ei ddefnyddio i brofi cryfder fy nghyfrinair pan fydd fy ymwelwyr yn nodi eu cyfrineiriau,
Darn gwych o godio
Roedd y sgript yn wych. Roeddwn i wedi ei defnyddio yn ein prosiect cyfredol
Diolch i chi am rannu!
Mynegiant mor syml a gwych. Dechreuais i fel profwr fy TCs o'r ymadrodd hwn.
Diolch am rannu. Mae gennych ychydig o ddolenni wedi'u torri ar y dudalen hon. FYI.
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.
Ffantastig !!!!! Diolch.
Boi swydd gwych! Syml ac effeithiol. Diolch yn fawr am rannu!
diolch
Da, thx. Ond… Beth yw enghraifft o bwll CRYF? 'methu dod o hyd i un! - {}
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.
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!
diolch mae'n gweithio'n wych.
Diolch u ei ddirwy gweithio
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
Diolch, mêt. Newydd gael ei ddefnyddio ar fy ngwefan ac mae'n gweithio'n dda iawn.
Wrth fy modd yn clywed hynny! Mae croeso mawr i chi!
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!
Diolch, gobeithio y gallwch ei addasu yn ôl yr angen.
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 !!
Gwych clywed!