
Құпия сөздің беріктігін JavaScript немесе jQuery және тұрақты өрнектермен тексеріңіз (сервер жағындағы мысалдармен де!)
Мен қолданатын құпия сөздің беріктігін тексерушінің жақсы үлгісін іздестіру бойынша біраз зерттеулер жүргіздім JavaScript және Тұрақты өрнектер (Регекс). Менің жұмысымдағы қолданбада біз құпия сөздің күшін тексеру үшін пост жасаймыз және бұл біздің пайдаланушыларымыз үшін өте ыңғайсыз.
Regex дегеніміз не?
Тұрақты өрнек - бұл іздеу үлгісін анықтайтын таңбалар тізбегі. Әдетте мұндай заңдылықтар үшін іздеу алгоритмі қолданылады табу or табу және ауыстыру жолдардағы операциялар немесе кірісті тексеру үшін.
Бұл мақала сізге тұрақты тіркестерді үйретпейтіні сөзсіз. Тек тұрақты өрнектерді қолдану мүмкіндігі мәтіннен үлгілерді іздеу кезінде сіздің дамуыңызды мүлдем жеңілдететінін біліңіз. Даму тілдерінің көпшілігі экспрессияның тұрақты қолданысын оңтайландырғанын ескеру қажет ... сондықтан жолдарды кезең-кезеңімен талдауға және іздеуге қарағанда, Regex әдетте серверде де, клиентте де жылдамырақ болады.
Мен интернетті таппас бұрын біраз іздедім мысалы ұзындықтың, таңбалардың және таңбалардың тіркесімін іздейтін кейбір тамаша Тұрақты өрнектер. Дегенмен, код менің талғамым үшін аздап шамадан тыс болды және .NET үшін бейімделді. Сондықтан мен кодты жеңілдетіп, оны JavaScript-ге қойдым. Бұл оны кері жарияламас бұрын клиент браузерінде нақты уақыт режимінде құпия сөз күшін тексеруге мүмкіндік береді... және пайдаланушыға құпия сөздің күші туралы кейбір кері байланыс береді.
Құпия сөзді теріңіз
Пернетақтаның әр соққысы кезінде пароль кәдімгі сөйлемге қарсы тексеріліп, содан кейін пайдаланушыға оның арасына кері байланыс беріледі.
JavaScript құпия сөзінің күші функциясы
The Тұрақты өрнектер кодтың ұзындығын азайту үшін керемет жұмыс жасаңыз. Бұл Javascript функциясы құпия сөздің күшін және оны табу оңай, орташа, қиын немесе өте қиын екенін тексереді. Адам теріп жатқанда, ол оны күштірек болуға шақыратын кеңестерді көрсетеді. Ол құпия сөзді келесіге негіздейді:
- ұзындық – Ұзындығы 8 таңбадан аз немесе одан көп болса.
- Аралас жағдай – Құпия сөзде бас және кіші әріптер болса.
- Numbers – Құпия сөзде сандар болса.
- Ерекше кейіпкерлер – Құпия сөзде арнайы таңбалар болса.
Функция қиындықты, сондай-ақ құпия сөзді одан әрі қатайту бойынша кейбір кеңестерді көрсетеді.
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 Password Strength функциясы
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 үшін: бөлектелген қораптағы код кесілген пастамен жұмыс істемейді. Жалғыз дәйексөз бұзылған. Демонстрациялық сілтеменің коды жақсы.
Эй, маған сенің сценарийің ұнайды! Мен оны голланд тіліне аудардым және оны өз форумыма орналастырдым!
керемет жұмыс! дәл клиентте қалай жасалуы керек
өте жақсы жұмыс ....
Дугластың арқасында, мен оны қазіргі жұмысыма қолданамын.
«P @ s $ w0rD» қатты көрінеді, дегенмен ол сөздік шабуылмен тез арада бұзылады ...
Мұндай мүмкіндікті кәсіптік шешімге орналастыру үшін мен бұл алгоритмді сөздік тексерумен үйлестіру маңызды деп санаймын.
XULRunner-де аздап өзгеріс енгізіп, керемет жұмыс істейді. Рахмет!
Осы кішкентай код үшін рахмет, мен оны келушілер құпия сөздерін берген кезде оны құпия сөзімнің күшін тексеру үшін қолдана аламын,
Кодтаудың керемет бөлігі
Сценарий керемет болды .Мен қазіргі жобада қолданған едім
Бөлінгеніңіз үшін рақмет!
Сондықтан қарапайым және фантастикалық өрнек. Мен тестер ретінде өзімнің ТС-ны осы өрнектен шығардым.
Бөліскеніңіз үшін рақмет. Бұл бетте сізде бірнеше үзілген сілтемелер бар. ЖАҢА.
біреу айта алады, неге бұл менің жұмысым болмады ..
Мен барлық кодты көшірдім және оны блокнотқа ++ қойдым, бірақ ол мүлдем жұмыс істемейді?
өтінемін маған көмектесіңіз..
Ғажайып!!!!! Рақмет сізге.
Керемет жұмыс! Қарапайым және тиімді. Бөліскеніңіз үшін көп рахмет!
рақмет сізге
Жақсы, thx. Бірақ ... МЫҚТЫ pw мысалы қандай? 'таба алмаймын! - {}
«Күшті тексергіштің» бұл түрі адамдарды өте қауіпті жолға түсіреді. Ол құпия фразаның ұзындығына қарағанда таңбалардың әртүрлілігін жоғары бағалайды, сондықтан қысқа, әр түрлі парольдерді ұзын, азырақ парольдерге қарағанда күшті етіп бағалауға мүмкіндік береді. Бұл сіздің қолданушыларыңызға күрделі хакерлік қауіп төніп тұрса, оларды қиындықтарға душар ететін жаңылыс.
Мен келіспеймін, Джордан! Мысал тек сценарийдің мысалы ретінде келтірілді. Адамдарға ұсынысым - кез-келген сайтқа ғана тән парольдерді құру үшін парольдерді басқару құралын пайдалану. Рахмет!
рахмет ол керемет жұмыс істейді.
Оның жұмыс істеп жатқанына рахмет
Мен сізді осыдан бірнеше рет іздегеніме өте ризамын, бірақ мен сіздің постыңызды алдым және мен шынымен таңдандым. РАҚМЕТ СІЗГЕ
Рахмет жар. Менің веб-сайтымда жай орналастырылды және ол өте жақсы жұмыс істейді.
Мұны естігенді жақсы көремін! Қош келдіңіз!
Мен сіздің бөліскеніңізге ризамын! Веб-сайтыңыздағы пароль күшін жақсартуды іздедіңіз және бұл мен қалағандай жұмыс жасады. Көп рақмет сізге!
Рақмет, оны қажеттілікке қарай реттей аласыз деп үміттенемін.
Сіз тірі үнемдеушісіз! Мен солдан және оң жақтан жолдарды талдап, одан да жақсы жол бар деп ойладым және сіздің код бөлігіңізді Regex көмегімен таптым. Менің сайтым үшін онымен ойнай алды ма ... Мұның қаншалықты көмектескенін білмейсіз. Дугласқа үлкен рахмет !!
Есту керемет!