
Kontrolu la Forton de Pasvorto kun JavaScript kaj Regulaj Esprimoj (Kun Ekzemploj de Servilo, Ankaŭ!)
Mi iom esploris pri trovado de bona ekzemplo de uzanto de Pasvorta Forto JavaScript kaj Regulaj Esprimoj (Regex). En la aplikaĵo ĉe mia laboro, ni redonas afiŝon por kontroli la pasvorton, kaj ĝi estas sufiĉe maloportuna por niaj uzantoj.
Kio estas Regex?
Regula esprimo estas vico de signoj, kiuj difinas serĉan ŝablonon. Kutime tiaj ŝablonoj estas uzataj per ĉenserĉaj algoritmoj trovi or trovi kaj anstataŭigi operacioj sur ĉenoj, aŭ por eniga validado.
Ĉi tiu artikolo certe ne instruas al vi regulajn esprimojn. Nur sciu, ke la kapablo uzi Regulajn Esprimojn absolute simpligos vian evoluon dum vi serĉos ŝablonojn en teksto. Gravas ankaŭ rimarki, ke plej multaj evoluaj lingvoj optimumigis uzon de regula esprimo ... do anstataŭ analizi kaj serĉi ĉenojn paŝon post paŝo, Regex estas kutime multe pli rapida kaj servila kaj klienta.
Mi serĉis la retejon sufiĉe antaŭ ol mi trovis ekzemplo de iuj bonegaj Regulaj Esprimoj, kiuj serĉas kombinaĵon de longo, signoj kaj simboloj. Tamen la kodo estis iom troa laŭ mia gusto kaj adaptita por .NET. Do mi simpligis la kodon kaj metis ĝin en JavaScript. Ĉi tio igas ĝin validigi la pasvorton en realtempa en la retumilo de la kliento antaŭ afiŝi ĝin reen ... kaj donas iom da reago al la uzanto pri la forto de la pasvorto.
Tajpu A Pasvorton
Kun ĉiu bato de la klavaro, la pasvorto estas provita kontraŭ la regula esprimo kaj tiam reago estas donita al la uzanto en interspaco sub ĝi.
Jen la Kodo
la Regulaj Esprimoj faru mirindan laboron por minimumigi la longon de la kodo. Ĉi tiu Javascript-funkcio kontrolas la forton de pasvorto kaj ĉu malhelpi ĝin estas facila, meza, malfacila aŭ ege malfacile divenebla. Dum la persono tajpas, ĝi montras konsilojn por kuraĝigi ĝin esti pli forta. Ĝi validas la pasvorton surbaze de:
- longo – Se la longo estas sub aŭ pli ol 8 signoj.
- Miksita Kazo – Se la pasvorto havas kaj majusklajn kaj minusklojn.
- Nombroj – Se la pasvorto inkluzivas numerojn.
- Specialaj Karakteroj – Se la pasvorto inkluzivas specialajn signojn.
La funkcio montras la malfacilaĵon kaj kelkajn konsiletojn por plifortigi la pasvorton.
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;
}
}
Malmoligi Vian Pasvortan Peton
Estas esence, ke vi ne nur validigu la pasvortan konstruon ene de via Ĝavaskripto. Ĉi tio ebligus al ĉiuj kun retumilaj iloj preteriri la skripton kaj uzi ĉian pasvorton, kiun ili ŝatus. Vi ĈIAM devas uzi servilan kontrolon por validigi la pasvortan forton antaŭ ol konservi ĝin en via platformo.
PHP-Funkcio Por Forto de Pasvorto
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 Funkcio Por Pasvortforto
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# Funkcio Por Forto de Pasvorto
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 Funkcio Por Forto de Pasvorto
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";
}
}
Mi trovis alian pasvortfortajn kontrolilojn. Ilia algoritmo bazita sur vortaro. Provu unu ĉe microsoft.com - http://www.microsoft.com/protect/yourself/password/checker.mspx kaj unu ĉe itsimpl.com - http://www.itsimpl.com
DANKON! DANKON! DANKON! Mi trompis dum 2 semajnoj kun malbenita pasvorta fortokodo de aliaj retejoj kaj eltiris miajn harojn. Via estas mallonga, funkcias same kiel mi volas kaj plej bone, facile modifebla por komencanto de Javaskripto! Mi volis kapti la fortoverdikton kaj ne lasi la formularon afiŝi efektive ĝisdatigi la pasvorton de la uzanto krom se ĝi renkontis la fortoteston. La kodo de aliaj homoj estis tro komplika aŭ ne funkciis ĝuste aŭ io alia. Mi amas vin! XXXXX
Ne dankinde! Ne dankinde! Ne dankinde!
Mi amas vin ankaŭ!
Dankon pro verkado de kodo, kiu faras ĝuste tion, kion ĝi diras sur la ladskatolo!
Saluton, antaŭ ĉio koran dankon pro viaj klopodoj, mi provis uzi ĉi tion kun Asp.net sed ne funkciis, mi uzas
anstataŭ etikedo, kaj ĝi ne funkciis, iuj sugestoj?!
Al Nisreen: la kodo en la emfazita skatolo ne funkcias kun tranĉ' kaj alglui. La ununura citaĵo estas fuŝita. La kodo de la pruva ligilo tamen estas bona.
Hej, mi ŝatas vian skripton! Mi tradukis ĝin en la nederlandan, kaj mi afiŝis ĝin ĉe mia forumo ĉi tie!
bonega laboro! precize kiel ĝi devas esti farita ĉe la kliento
tre bela laboro....
Dankon Douglas, mi uzas ĝin por mia nuna laboro.
"P@s$w0rD" montras forte, kvankam ĝi estus fendita sufiĉe rapide kun vortara atako...
Por deploji tian funkcion sur profesia solvo, mi kredas, ke estas grave kombini ĉi tiun algoritmon kun vortara kontrolo.
Funkcias bonege en XULRunner kun iom ŝanĝanta ĉirkaŭe. Dankon!
Dankon pro ĉi tiu kodo, mi nun povas uzi ĝin por testi mian pasvorton, kiam miaj vizitantoj enigas siajn pasvortojn,
Bonega peco de kodigo
La skripto estis bonega .Mi uzis en nia nuna projekto
Dankon pro dividado!
Tiel simpla kaj mirinda esprimo. Mi kiel testisto derivis miajn TCojn de ĉi tiu esprimo.
Dankon pro kundivido. Vi havas kelkajn rompitajn ligilojn sur ĉi tiu paĝo. FYI.
ĉu iu povas diri, kial ĝi ne funkciis la mia..
mi kopiis la tutan kodon, kaj algluis ĝin al notepad++ , sed ĝi tute ne funkcias ?
Bonvolu helpi min..
Mirinda!!!!! Dankon.
Bonega laborulo! Simpla kaj efika. Koran dankon pro dividado!
Dankon
Bone, dankon. Sed... Kio estas ekzemplo de FORTA pw? 'Ne povas trovi unu!-{}
Ĉi tiu tipo de "forta kontrolilo" kondukas homojn laŭ tre danĝera vojo. Ĝi taksas signodiversecon super pasvorto-longo, igante ĝin taksi pli mallongajn, pli diversajn pasvortojn kiel pli fortajn ol pli longajn, malpli diversajn pasvortojn. Tio estas trompo, kiu havos problemojn viajn uzantojn se ili iam alfrontos gravan hakan minacon.
Mi ne malkonsentas, Jordan! La ekzemplo estis simple elmetita kiel ekzemplo de la skripto. Mia rekomendo por homoj estas uzi pasvort-administran ilon por krei sendependajn pasfrazojn por iu ajn retejo, kiu estas unika por ĝi. Dankon!
dankon ĝi funkcias bonege.
Dankon, ĝi bone funkcias
Mi vere dankas, ke vi estas serĉata ĉi tion multfoje sed finfine mi ricevis vian afiŝon kaj mi vere miras. DANKON
Dankon amiko. Ĵus deplojita en mia retejo kaj ĝi funkcias tre bone.
Amu aŭdi tion! Nedankinde!
Mi dankas vin kundividado! Mi serĉis plifortigi la pasvortforton en nia retejo kaj ĉi tiu funkciis kiel mi volis. Multan dankon!
Dankon, esperas, ke vi povos agordi ĝin laŭbezone.
Vi estas viva savanto! Mi analizis ŝnurojn maldekstren kaj centren kaj pensis, ke estas pli bona maniero kaj trovis vian kodon uzante Regex. Povis tinti kun ĝi por mia retejo...Vi ne havas ideon kiom ĉi tio helpis. Koran dankon Douglas!!
Bonege aŭdi!