
Hêza şîfreyê bi JavaScript an jQuery û bi vegotinên birêkûpêk kontrol bikin (Bi Mînakên Server-Side re jî!)
Min li ser dîtina nimûneyek baş a venêrana Hêza Passwordîfreyê ya ku bikar tîne hin lêkolîn dikir JavaScript û Bêjeyên Rêkûpêk (regex). Di serîlêdana karê min de, em ji bo verastkirina hêza şîfreyê postek paşde dikin û ew ji bo bikarhênerên me pir nerehet e.
Regex çi ye?
Vegotinek rêkûpêk rêzeyek karakterên ku rengek lêgerînê diyar dikin e. Bi gelemperî, nimûneyên weha ji hêla algorîtmayên lêgerîna string ve têne bikar anîn dîtin or bibînin û veguherînin operasyonên li ser têlan, an jî ji bo pejirandina ketinê.
Ev gotar bê guman ne ew e ku hûn vegotinên rêkûpêk fêr nekin. Tenê bizanibin ku gava ku hûn li qaliban di nivîsê de digerin dê kapasîteya karanîna Bêjeyên Rêkûpêk bi tevahî geşedana we hêsan bike. Her weha girîng e ku meriv bibîne ku piraniya zimanên pêşveçûnê karanîna vegotina birêkûpêk çêtirîn kirine ... ji ber vê yekê ji bila parsek û lêgerîn li têlan gav bi gav, Regex bi gelemperî hem server hem jî aliyê xerîdar zûtir e.
Berî ku ez bibînim min hinekî li tevn geriya nimûne ji hin Gotinên Birêkûpêk ên mezin ên ku li berhevokek dirêj, karakter û sembolan digerin. Lêbelê, kod ji bo tama min hinekî zêde bû û ji bo .NET-ê hatî çêkirin. Ji ber vê yekê min kodê hêsan kir û ew xist nav JavaScriptê. Ev dihêle ku ew hêza şîfreyê di demek rast de li ser geroka xerîdar rast bike berî ku wê paşde bişîne… û li ser hêza şîfreyê hin bertek ji bikarhêner re peyda dike.
Passwordîfreyek A binivîse
Bi her lêdana klavyeyê re, şîfre li dijî derbirîna rêkûpêk tê ceribandin û piştre di binê wê de şûnda ji bikarhêner re tê peyda kirin.
Fonksiyona Hêza Şîfreya JavaScriptê
Ew Bêjeyên Rêkûpêk ji bo kêmkirina dirêjahiya kodê karek fantastîk bikin. Vê fonksiyona Javascript hêza şîfreyek kontrol dike û gelo hilanîna wê hêsan, navîn, dijwar, an zehf dijwar e ku meriv texmîn bike. Gava ku mirov tîp dike, ew serişteyên li ser teşwîqkirina wê ya bihêztir nîşan dide. Ew şîfreya li ser bingeha:
- Dirêjî - Ger dirêjî di binê 8 tîpan de be.
- Mixed Case - Heke şîfre hem tîpên jor û hem jî yên piçûk hebin.
- Numbers - Ger şîfreya hejmaran hebe.
- Karakterên Taybet - Heke şîfre tîpên taybetî hene.
Fonksiyon zehmetiyê û her weha hin serişteyên li ser hişkkirina şîfreyê bêtir nîşan dide.
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;
}
}
Heke hûn dixwazin rengê tîpê nûve bikin, hûn dikarin wiya jî bi nûvekirina kodê piştî nûjen bikin // Return results
xet.
// 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";
}
Fonksiyona Hêza Şîfreya jQuery
Bi jQuery re, bi rastî ne hewce ye ku em formê bi nûvekirinek oninput re binivîsin:
<form>
<label for="password">Enter password:</label>
<input type="password" id="password">
<p id="password-strength"></p>
</form>
Ger em bixwazin em dikarin rengê peyaman jî biguherînin.
$(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');
}
});
});
Daxwaza Passwordîfreya Xwe Hundir Dike
Pêdivî ye ku hûn ne tenê di nav Javascript-a xwe de çêkirina şîfreyê erê bikin. Ev ê dihêle ku her kesê ku amûrên geşedana gerokê heye nivisandinê derbas bike û şîfreya ku ew dixwazin bi kar bîne. Pêdivî ye ku hûn her dem ji bo pejirandina hêza şîfreyê berî ku ew di platforma xwe de tomar nekin, her gav kontrola server-ê bikar bînin.
Fonksiyona PHP-ê Ji bo Hêza Şîfreyê
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";
}
}
Fonksiyona Python Ji bo Hêza Şîfreyê
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"
Fonksiyon C# Ji bo Hêza Şîfreyê
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";
}
}
Fonksiyona Java Ji bo Hêza Şîfreyê
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";
}
}
Û heke hûn tenê li hilberînerek şîfreyek mezin digerin, min ji bo wê amûrek piçûk a serhêl a xweş çêkiriye.
Min kontrolên hêza şîfreyek din dît. Algorîtmaya wan li ser bingeha ferhenga peyvan e. Yek li microsoft.com biceribîne - http://www.microsoft.com/protect/yourself/password/checker.mspx û yek li itsimpl.com - http://www.itsimpl.com
SPAS DIKIM! SPAS DIKIM! SPAS DIKIM! Ez 2 hefte bi koda hêza şîfreya lanetkirî ya ji malperên din dixapim û porê xwe dikişînim. Ya te kurt e, mîna ku ez dixwazim dixebite û ya herî baş, ji bo nûvekarek javascript-ê hêsan e ku meriv biguhezîne! Min dixwest ku biryara hêzê bigirim û nehêlim ku form bi rastî şîfreya bikarhêner nûve bike heya ku ew ceribandina hêzê nebîne. Koda kesên din pir tevlihev bû an rast nexebitî an tiştek din. Ez hej te dikim! XXXX
Serçavan! Serçavan! Serçavan!
Ez jî hej te dikim!
Spas dikim ji bo nivîsandina perçeyek kodê ku tam tiştê ku li ser kaniyê dibêje dike!
Silav, berî her tiştî gelek spas ji bo hewildanên we, min hewl da ku vê bi Asp.net re bikar bînim lê nexebitî, ez bikar tînim
li şûna etîketê, û ew nexebitî, ti pêşniyarek?!
Ji Nisreen re: koda di qutiya ronîkirî de bi qut-n'paste re naxebite. Gotina yekane tevlihev e. Her çend koda girêdana xwenîşandanê baş e.
Hey, ez ji nivîsara te hez dikim! Min ew wergerand holandî, û min ew li vir li foruma xwe şand!
karekî mezin! tam çawa divê li ser xerîdar were kirin
karekî pir xweş….
Spas Douglas, ez wê ji bo karê xweya niha bikar tînim.
"P@s$w0rD" bi hêz xuya dike, her çend ew ê bi êrîşek ferhengî bi lez û bez were şikandin…
Ji bo bicîhkirina taybetmendiyek wusa li ser çareseriyek pîşeyî, ez bawer dikim girîng e ku meriv vê algorîtmayê bi kontrolek ferhengê re bike yek.
Di XULRunner-ê de bi piçûkek guheztinê re pir baş dixebite. Spas!
Spas ji bo vê koda piçûk ez nuha dikarim wê bikar bînim da ku hêza şîfreya xwe biceribînim dema ku mêvanên min şîfreyên xwe têkevin,
Parçeyek mezin a kodkirinê
Senaryo super bû. Min di projeya meya heyî de bikar anîbû
Ji bo parvekirina we spas!
Gotina ewqas hêsan û fantastîk. Min wek ceribandinek TC-yên xwe ji vê îfadeyê girt.
Spas ji bo parvekirinê. Li ser vê rûpelê çend girêdanên we yên şikestî hene. FYI.
kes dikare bêje, çima ew nexebitî ya min..
Min hemî kod kopî kir, û wê li notepad++ bikirtînin, lê ew qet naxebite?
ji kerema xwe alîkariya min bike..
Gelek delal!!!!! Spas dikim.
Mirovê karê mezin! Hêsan û bi bandor. Gelek spas ji bo parvekirinê!
sipas ji were
Baş e, thx. Lê… Mînaka pw-ya STRONG çi ye? 'yek nabînim!-{}
Ev celeb "kontrolkerê hêzê" mirovan ber bi rêyek pir xeternak ve dibe. Ew cihêrengiya karakterê li ser dirêjahiya şîfreya derbasbûnê dinirxîne, rê dide wê ku şîfreyên kurttir, cihêrengtir ji şîfreyên dirêjtir û cihêreng bihêztir binirxîne. Ew xeletiyek e ku dê bikarhênerên we bikeve nav tengasiyê ger ew carî bi xetereyek ciddî ya hackkirinê re rû bi rû bimînin.
Ez li hev nakim, Urdun! Mînak bi tenê wekî mînakek senaryoyê hate danîn. Pêşniyara min ji mirovan re ev e ku amûrek rêveberiya şîfreyê bikar bînin da ku ji bo her malperek ku ji wê re yekta ne şîfreyên serbixwe biafirînin. Spas!
spas ew pir baş dixebite.
Spas ji we re ew baş dixebite
Ez bi rastî spas dikim ku hûn gelek caran li vê yekê geriyam lê herî dawî min posta we girt û bi rastî matmayî me. SIPAS JI WERE
Spas heval. Tenê li ser malpera min hate belav kirin û ew pir baş dixebite.
Ji bihîstina wê hez bikin! Tu bi xêr hatî!
Ez ji parvekirina we re spas dikim! Ez li ser malpera me digerim ku hêza şîfreyê zêde bikim û ev yek bi awayê ku min dixwest xebitî. Gelek sipas!
Spas, hêvî dikim ku hûn ê karibin wê wekî ku hewce dike xweş bikin.
Hûn rizgarkerek zindî ne! Min rêzikên çepê rast û navend pars dikir û fikirîm ku rêyek çêtir heye û perçeya koda we bi karanîna Regex dît. Dikaribû ji bo malpera min bi wê veşêre… Hûn nizanin ka ev çiqas alîkarî kir. Gelek spas Douglas !!
Bi bihîstinê xweş e!