
Нууц үгийн бат бөх чанарыг JavaScript эсвэл jQuery болон ердийн илэрхийллээр шалгана уу (Сервер талын жишээн дээр бас!)
Нууц үгийн хүч чадал шалгагчийг ашигладаг жишээг олох талаар судалгаа хийж байсан JavaScript болон Тогтмол илэрхийлэл (Режекс). Миний ажил дээрх аппликешн дээр бид нууц үгийн бат бөх чанарыг шалгахын тулд бичлэг хийдэг бөгөөд энэ нь манай хэрэглэгчдэд тохиромжгүй байдаг.
Режекс гэж юу вэ?
Тогтмол илэрхийлэл бол хайлтын хэв маягийг тодорхойлдог тэмдэгтүүдийн дараалал юм. Ихэнхдээ ийм загварыг мөр хайх алгоритмаар ашигладаг олох or олох, солих мөрүүд эсвэл оролтыг баталгаажуулах үйлдлүүд.
Энэ нийтлэл нь танд тогтмол хэллэг заахгүй нь дамжиггүй. Текстийн хэв маягийг хайж байхдаа ердийн илэрхийлэл ашиглах чадвар нь таны хөгжлийг туйлын хялбаршуулах болно гэдгийг л мэдэж аваарай. Ихэнх хөгжүүлэлтийн хэл нь экспрессын тогтмол хэрэглээг оновчтой болгосон гэдгийг тэмдэглэх нь чухал юм ... Тиймээс мөрүүдийг алхам алхамаар задлан хайхаас илүүтэйгээр Regex нь сервер болон үйлчлүүлэгчдийн аль алинд нь илүү хурдан ажилладаг.
Би олдохоосоо өмнө нэтээс бага зэрэг хайсан жишээ урт, тэмдэгт, тэмдэгтүүдийн хослолыг эрэлхийлдэг зарим гайхалтай ердийн илэрхийлэл. Гэсэн хэдий ч, код нь миний амтанд бага зэрэг хэтэрсэн бөгөөд .NET-д тохирсон. Тиймээс би кодыг хялбаршуулж, JavaScript-д оруулав. Энэ нь түүнийг буцааж нийтлэхээсээ өмнө үйлчлүүлэгчийн хөтөч дээр нууц үгийн бат бөх чанарыг бодит цаг хугацаанд баталгаажуулж, нууц үгийн бат бөх байдлын талаар хэрэглэгчдэд санал хүсэлтийг өгдөг.
Нууц үгээ оруулна уу
Гарны цохилт бүрт нууц үгийг ердийн илэрхийллийн дагуу шалгаж, дараа нь хэрэглэгчдэд хариу өгөх болно.
JavaScript нууц үгийн бат бөх функц
The Тогтмол илэрхийлэл кодын уртыг багасгах гайхалтай ажил хий. Энэхүү Javascript функц нь нууц үгийн бат бөх эсэхийг шалгадаг бөгөөд үүнийг нууцлах нь амархан, дунд, хэцүү эсвэл таахад хэцүү эсэхийг шалгадаг. Тухайн хүнийг бичих тусам түүнийг илүү хүчтэй болгоход туслах зөвлөмжүүдийг харуулдаг. Энэ нь нууц үгийг дараах үндсэн дээр баталгаажуулдаг.
- Урт – Хэрэв урт нь 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 нууц үгийн бат бөх функц
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');
}
});
});
Нууц үгийнхээ хүсэлтийг хатууруулах
Та зөвхөн Javascript дотор нууц үгийн бүтцийг баталгаажуулахгүй байх нь чухал юм. Энэ нь хөтөч боловсруулах хэрэгсэлтэй хүмүүст скриптийг тойрч гарах, хүссэн нууц үгээ ашиглах боломжийг олгоно. Та платформдоо хадгалахаасаа өмнө нууц үгийн хүчийг баталгаажуулахын тулд үргэлж сервер талын шалгалтыг ашиглах хэрэгтэй.
Нууц үгийн бат бөх байдлын PHP функц
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 функц
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 долоо хоног хуурч, үсээ зулгааж байна. Таных богино, миний хүссэнээр ажилладаг, хамгийн сайн нь javascript шинэхэн хүн өөрчлөхөд хялбар! Би хүч чадлын талаархи шийдвэрийг авахыг хүсч, хүч чадлын тестийг хангаагүй тохиолдолд хэрэглэгчийн нууц үгийг бодитоор шинэчлэхийн тулд маягтын бичлэгийг зөвшөөрөхгүй байхыг хүссэн. Бусдын код хэтэрхий төвөгтэй байсан эсвэл зөв ажиллахгүй байсан эсвэл өөр зүйл байсан. Би чамд хайртай! ХХХХ
Та тавтай морилно уу! Та тавтай морилно уу! Та тавтай морилно уу!
Би ч бас чамд хайртай!
Лаазанд яг юу хэлснийг яг таг хийдэг код бичсэнд баярлалаа!
Сайн уу, юуны түрүүнд хүчин чармайлт гаргасанд маш их баярлалаа, би үүнийг Asp.net-тэй ашиглахыг хичээсэн боловч ажиллахгүй байна, би ашиглаж байна
оронд нь шошго, гэхдээ энэ нь ажиллахгүй байна, ямар ч санал байна уу ?!
Nisreen-д: тодруулсан хайрцагт байгаа код нь cut'n'paste-тэй ажиллахгүй. Ганц ишлэлийг будлиантуулсан байна. Жагсаалын холбоосын код сайн байна.
Хөөе, чиний зохиол надад таалагдаж байна! Би үүнийг голланд хэл рүү хөрвүүлж, форум дээрээ энд байрлуулсан!
сайн ажил! үйлчлүүлэгч дээр яг яаж хийх ёстойг
маш сайхан ажил….
Дугласад баярлалаа, би үүнийг одоогийн ажилдаа ашигладаг.
“P @ s $ w0rD” нь хүчтэй харагдаж байна, гэхдээ толь бичгийн довтолгооноор нэлээд хурдан хагарах болно ...
Ийм шинж чанарыг мэргэжлийн шийдэлд ашиглахын тулд энэ алгоритмыг толь бичгийн шалгалттай хослуулах нь чухал гэж би үзэж байна.
XULRunner дээр бага зэрэг өөрчлөгдөж гайхалтай ажилладаг. Баярлалаа!
Энэ бяцхан кодод баярлалаа, зочид маань нууц үгээ оруулахад нууц үгийн хүчийг шалгахын тулд үүнийг ашиглаж болно.
Маш сайн кодчилол
Скрипт нь супер байсан .Би одоогийн төсөлдөө ашиглаж байсан
Хуваалцсанд баярлалаа!
Маш энгийн бөгөөд гайхалтай илэрхийлэл. Би шалгагч хүний хувьд энэ илэрхийллээс ТС-уудээ гаргаж авсан.
Хуваалцсанд баярлалаа. Энэ хуудсан дээр танд цөөн хэдэн эвдэрсэн холбоос байна. Мэдээлэл.
яагаад минийх ажиллаагүй юм гэж хэн нэгэн хэлж чадах уу?
би бүх кодыг хуулж аваад notepad ++ дээр буулгасан боловч огт ажиллахгүй байна уу?
надад туслаач..
Гайхамшигтай !!!!! Баярлалаа.
Гайхалтай ажил хэрэгч залуу! Энгийн бөгөөд үр дүнтэй. Хуваалцсанд маш их баярлалаа!
баярлалаа
Сайн байна. Гэхдээ ... ХҮЧТЭЙ pw-ийн жишээ юу вэ? 'олохгүй байна! - {}
Энэ төрлийн "хүч шалгагч" нь хүмүүсийг маш аюултай зам руу хөтөлдөг. Энэ нь нэвтрэх үгийн уртаас илүү зан чанарын олон янз байдлыг үнэлдэг тул богино, илүү олон төрлийн нууц үгийг урт, бага нууц үгээс илүү хүчтэй гэж үнэлдэг. Энэ нь таны хэрэглэгчид хэзээ нэгэн цагт хакердах ноцтой аюул заналхийлэлд өртвөл асуудалд орох болно.
Би санал зөрж байна, Жордан! Жишээг зүгээр л скриптийн жишээ болгон гаргав. Хүмүүст өгөх зөвлөмж бол аливаа сайтад өвөрмөц, нэвтрэх үг хэллэг үүсгэх нууц үгийн менежментийн хэрэгслийг ашиглах явдал юм. Баярлалаа!
баярлалаа, энэ нь маш сайн ажилладаг.
Сайн ажиллаж байгаад нь баярлалаа
Таныг олон удаа хайж байгаад үнэхээр их талархаж байна, гэхдээ хамгийн сүүлд би чиний бичлэгийг аваад үнэхээр их сэтгэл хөдөлсөн. БАЯРЛАЛАА
Баярлалаа ханиа. Зүгээр л миний вэбсайт дээр байрлуулсан бөгөөд энэ нь маш сайн ажиллаж байна.
Үүнийг сонсох дуртай! Та бүхнийг тавтай морилно уу!
Таныг хуваалцаж байгаад талархаж байна! Манай вэбсайт дахь нууц үгийн хүчийг сайжруулахыг хүсч байсан бөгөөд энэ нь миний хүссэнээр ажилласан. Маш их баярлалаа!
Баярлалаа, шаардлагатай бол үүнийг өөрчилж чадна гэж найдаж байна.
Та бол амьд хадгалагч юм! Би баруун, зүүн талын мөрүүдийг задлан шинжилж байгаад илүү сайн арга байна гэж бодоод Regex ашиглан таны кодыг оллоо. Миний сайтад зориулж үүнийг ашиглаж чадсан уу ... Энэ нь хичнээн их тус болсныг та огт мэдэхгүй байна. Маш их баярлалаа Дуглас !!
Сонсоход сайхан байна!