
טשעק שפּריכוואָרט שטאַרקייט מיט דזשאַוואַסקריפּט אָדער דזשקווערי און רעגולער עקספּרעססיאָנס (מיט ביישפילן פון די סערווער זייַט אויך!)
איך האָב דורכגעקאָכט אַ פאָרשונג צו געפֿינען אַ גוטן בייַשפּיל פון אַ שפּריכוואָרט טשעקער וואָס ניצט דזשאַוואַסקריפּט און רעגולער עקספּרעססיאָנס (רעגעקס). אין דער אַפּלאַקיישאַן אין מיין אַרבעט, מיר מאַכן אַ פּאָסטן צוריק צו באַשטעטיקן די פּאַראָל שטאַרקייט און דאָס איז גאַנץ ומבאַקוועם פֿאַר אונדזער יוזערז.
וואָס איז רעגעקס?
א רעגולער אויסדרוק איז אַ סיקוואַנס פון אותיות וואָס דעפינירן אַ זוכן מוסטער. יוזשאַוואַלי אַזאַ פּאַטערנז זענען געניצט דורך אַלגערידאַמז פֿאַר זוכן פון שטריקל זוכן געפינען or געפֿינען און פאַרבייַטן אַפּעריישאַנז אויף סטרינגס, אָדער פֿאַר ינפּוט וואַלאַדיישאַן.
דער אַרטיקל קען נישט לערנען איר רעגולער אויסדרוקן. נאָר וויסן אַז די פיייקייט צו נוצן רעגולער עקספּרעססיאָנס וועט לעגאַמרע פאַרפּאָשעטערן דיין אַנטוויקלונג ווען איר זוכן פֿאַר פּאַטערנז אין טעקסט. עס איז אויך וויכטיק צו באַמערקן אַז רובֿ אַנטוויקלונג שפּראַכן האָבן אָפּטימיזעד רעגולער אויסדרוק נוצן.
איך האָב געזוכט די וועב גאַנץ אַ ביסל איידער איך געפונען אַ בייַשפּיל פון עטלעכע גרויס רעגולער עקספּרעססיאָנס וואָס קוקן פֿאַר אַ קאָמבינאַציע פון לענג, אותיות און סימבאָלס. אָבער, די קאָד איז געווען אַ ביסל יבעריק פֿאַר מיין געשמאַק און טיילערד פֿאַר. נעץ. אַזוי איך סימפּלאַפייד די קאָד און שטעלן עס אין דזשאַוואַסקריפּט. דאָס מאכט עס וואַלאַדייט די שפּריכוואָרט שטאַרקייט אין פאַקטיש-צייט אויף דעם קליענט ס בלעטערער איידער פּאָסטינג עס צוריק ... און גיט עטלעכע באַמערקונגען צו דער באַניצער וועגן די שטאַרקייט פון די פּאַראָל.
טיפּ אַ שפּריכוואָרט
מיט יעדער קלאַפּ פון די קלאַוויאַטור, די פּאַראָל איז טעסטעד קעגן די רעגולער אויסדרוק, און דערנאָך די באַמערקונגען זענען צוגעשטעלט צו די באַניצער אין אַ שפּאַן אונטער אים.
דזשאַוואַסקריפּט שפּריכוואָרט סטרענגטה פֿונקציע
די רעגולער עקספּרעססיאָנס טאָן אַ פאַנטאַסטיש אַרבעט פון מינאַמייזינג די לענג פון די קאָד. די דזשאַוואַסקריפּט פֿונקציע טשעקס די שטאַרקייט פון אַ פּאַראָל און צי עס איז גרינג, מיטל, שווער אָדער גאָר שווער צו טרעפן. ווען דער מענטש טיפּ, עס דיספּלייז עצות צו מוטיקן עס צו זיין שטארקער. עס וואַלאַדייץ די פּאַראָל באזירט אויף:
- לענג - אויב די לענג איז אונטער אָדער מער ווי 8 אותיות.
- געמישט קאַסע - אויב די פּאַראָל האט ביידע אויבערשטער און נידעריקער פאַל אותיות.
- נומערן - אויב די פּאַראָל כולל נומערן.
- ספּעציעלע אותיות - אויב די פּאַראָל כולל ספּעציעלע אותיות.
די פֿונקציע דיספּלייז די שוועריקייט ווי געזונט ווי עטלעכע עצות פֿאַר כאַרדאַנינג די פּאַראָל ווייַטער.
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;
}
}
אויב איר ווילט צו דערהייַנטיקן די קאָליר פון די שפּיץ, איר קענט אויך טאָן דאָס דורך אַפּדייטינג די קאָד נאָך די // Return results
שורה.
// 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";
}
דזשקווערי שפּריכוואָרט סטרענגטה פֿונקציע
מיט jQuery, מיר טאָן ניט טאַקע האָבן צו שרייַבן די פאָרעם מיט אַן אָנינפּוט דערהייַנטיקן:
<form>
<label for="password">Enter password:</label>
<input type="password" id="password">
<p id="password-strength"></p>
</form>
מיר קענען אויך מאָדיפיצירן די קאָליר פון די אַרטיקלען אויב מיר וועלן.
$(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');
}
});
});
פאַרגליווערט דיין פּאַראָל בעטן
עס איז יקערדיק אַז איר טאָן ניט נאָר באַשטעטיקן די פּאַראָל קאַנסטראַקשאַן אין דיין דזשאַוואַסקריפּט. דאָס קען געבן עמעצער מיט בלעטערער אַנטוויקלונג מכשירים צו בייפּאַס די שריפט און נוצן די פּאַראָל וואָס זיי וועלן. איר זאָל שטענדיק נוצן אַ סערווער-זייַט טשעק צו וואַלאַדייט די שטאַרקייַט פון די פּאַראָל איידער איר סטאָרד עס אין דיין פּלאַטפאָרמע.
פפּ פֿונקציע פֿאַר שפּריכוואָרט שטאַרקייַט
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";
}
}
פּיטהאָן פֿונקציע פֿאַר שפּריכוואָרט שטאַרקייַט
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 # פונקציע פֿאַר שפּריכוואָרט שטאַרקייַט
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 פונקציע פֿאַר שפּריכוואָרט שטאַרקייַט
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";
}
}
און אויב איר נאָר זוכט פֿאַר אַ גרויס פּאַראָל גענעראַטאָר, איך האָבן געבויט אַ קליין אָנליין געצייַג פֿאַר דעם.
איך געפֿונען אן אנדער פּאַראָל שטאַרקייט טשעקקערס. זייער אַלגערידאַם באזירט אויף ווערטער ווערטערבוך. פּרוּווט איינער ביי microsoft.com - http://www.microsoft.com/protect/yourself/password/checker.mspx און איינער ביי itsimpl.com - http://www.itsimpl.com
אדאנק! אדאנק! אדאנק! איך ווע שוין נאַר אַרום פֿאַר 2 וואָכן מיט פאַרשילטן פּאַראָל שטאַרקייַט קאָד פון אנדערע וועבסיטעס און פּולינג מיין האָר. דיין איז קורץ, אַרבעט פּונקט ווי איך ווילן און בעסטער פון אַלע, גרינג פֿאַר אַ דזשאַוואַסקריפּט אָנהייבער צו מאָדיפיצירן! איך געוואלט צו כאַפּן די שטאַרקייַט ווערדיקט און נישט לאָזן די פאָרעם פּאָסטן צו אַקטשאַוואַלי דערהייַנטיקן די באַניצער 'ס פּאַראָל סייַדן עס באגעגנט די שטאַרקייַט פּרובירן. די קאָד פון אנדערע מענטשן איז געווען צו קאָמפּליצירט אָדער האט נישט אַרבעטן רעכט אָדער עפּעס אַנדערש. איך האב דיר ליב! XXXXX
יישר! יישר! יישר!
איך האב דיר אויך ליב!
דאנק איר פֿאַר שרייבן אַ שטיק פון קאָד וואָס טוט פּונקט וואָס עס זאגט אויף די קענען!
הי, ערשטער פון אַלע אַ פּלאַץ פון דאַנקען פֿאַר דיין השתדלות, איך געפרוווט צו נוצן דעם מיט Asp.net אָבער עס האט נישט אַרבעטן, איך נוצן
אַנשטאָט פון קוויטל, און עס האט נישט אַרבעטן, קיין פֿירלייגן?!
צו ניסרעען: דער קאָד אין די כיילייטיד קעסטל טוט נישט אַרבעטן מיט אַ קאַט'נ'פּאַסטע. די איין ציטירן איז מעסט אַרויף. דער קאָד פון די דעמאַנסטריישאַן לינק איז אָבער גוט.
היי, איך ווי דיין שריפט! איך האב עס איבערגעזעצט אויף האלענדיש, און איך האב עס ארויסגעשטעלט אויף מיין פארום דא!
גוטע ארבעט! פּונקט ווי עס זאָל זיין געטאן אויף דעם קליענט
זייער שיין אַרבעט….
דאַנקען דאָוגלאַס, איך נוצן עס פֿאַר מיין קראַנט אַרבעט.
"P@s$w0rD" ווייזט שטאַרק, כאָטש עס וואָלט זיין קראַקט גאַנץ געשווינד מיט אַ ווערטערבוך אַטאַק ...
צו צעוויקלען אַזאַ אַ שטריך אויף אַ פאַכמאַן לייזונג, איך גלויבן עס איז וויכטיק צו פאַרבינדן דעם אַלגערידאַם מיט אַ ווערטערבוך טשעק.
אַרבעט גרויס אין XULRunner מיט אַ ביסל ענדערונגען אַרום. דאַנקען!
דאַנקען פֿאַר דעם ביסל קאָד איך קענען איצט נוצן עס צו פּרובירן מיין פּאַראָל שטאַרקייַט ווען מיין וויזיטערז אַרייַן זייער פּאַסווערדז,
גרויס שטיק קאָדירונג
די שריפט איז געווען סופּער. איך האט געוויינט אין אונדזער קראַנט פּרויעקט
דאנק איר פֿאַר ייַנטיילונג!
אַזוי פּשוט און פאַנטאַסטיש אויסדרוק. איך ווי אַ טעסטער דערייווד מיין TCs פון דעם אויסדרוק.
דאנק איר פֿאַר ייַנטיילונג. איר האָבן אַ ביסל צעבראכן לינקס אויף דעם בלאַט. FYI.
קען איינער זאגן פארוואס עס האט נישט געארבעט מיין ..
איך קאַפּיד אַלע די קאָד און פּאַפּ עס צו נאָטעפּאַד ++, אָבער עס טוט נישט אַרבעטן בייַ אַלע?
ביטע העלף מיר..
פאַנטאַסטיש!!!!! אדאנק.
גרויס אַרבעט באָכער! פּשוט און עפעקטיוו. דאַנקען דיר אַזוי פיל פֿאַר ייַנטיילונג!
אַ דאַנק
גוט, טהקס. אָבער ... וואָס איז אַ ביישפּיל פון אַ שטאַרק פּוו? 'קענען ניט געפֿינען איינער!-{}
דעם טיפּ פון "שטאַרקייַט טשעקער" פירט מענטשן אַראָפּ אַ זייער געפערלעך וועג. עס וואַלועס כאַראַקטער דייווערסיטי איבער פּאַסספראַסע לענג, לידינג עס צו קורס קירצער, מער דייווערס פּאַסווערדז ווי שטארקער ווי מער, ווייניקער דייווערס פּאַסווערדז. דאָס איז אַ פאַלאַסי וואָס וועט באַקומען דיין יוזערז אין קאָנפליקט אויב זיי האָבן אַ ערנסט כאַקינג סאַקאָנע.
איך בין נישט מסכים, יארדאניע! דער ביישפּיל איז פשוט ארויסגעשטעלט ווי אַ ביישפּיל פון די שריפט. מייַן רעקאָמענדאַציע פֿאַר מענטשן איז צו נוצן אַ פּאַראָל פאַרוואַלטונג געצייַג צו שאַפֿן פרייַ פּאַספראַסעס פֿאַר קיין פּלאַץ וואָס איז יינציק צו אים. דאַנקען!
דאַנקען עס אַרבעט גרויס.
דאנק איר אַז עס אַרבעט פייַן
איך טאַקע אָפּשאַצן אַז איר האָט געזוכט דעם פילע מאָל אָבער לעסאָף איך גאַט דיין פּאָסטן און בין טאַקע דערשטוינט. אדאנק
דאַנקען חבר. פּונקט דיפּלויד אויף מיין וועבזייטל און עס אַרבעט זייער גוט.
ליב צו הערן אַז! איר זענט זייער באַגריסן!
איך אָפּשאַצן איר ייַנטיילונג! איך האָב געזוכט צו פֿאַרבעסערן די פּאַראָל שטאַרקייט אויף אונדזער וועבזייטל און דאָס האָט געארבעט ווי איך געוואלט. א גרויסען ש 'כח!
דאַנקען, האָפֿן איר קענען צו קאַסטאַמייז עס ווי דארף.
איר זענט אַ לעבן ויסלייזער! איך איז געווען פּאַרסינג סטרינגס לינקס רעכט און צענטער און געדאַנק עס איז אַ בעסער וועג און געפֿונען דיין שטיק פון קאָד ניצן רעגעקס. איז געווען ביכולת צו טינגקלן מיט עס פֿאַר מיין פּלאַץ ... איר האָט קיין געדאַנק ווי פיל דאָס געהאָלפֿן. דאַנקען אַזוי פיל דאָוגלאַס !!
גרויס צו הערן!