8 ta belgidan iborat parolni qanday topish mumkin. Parolni lotin harflari va raqamlarida qanday yozish mumkin: php kirillli doimiy iboralar. Qanday qilib kuchli parolni topish mumkin



Parol uchun oddiy iborada kamida sakkizta belgi, kamida bitta raqam, kichik va katta harflar va maxsus belgilar bo'lishi kerak (15)

Quyidagi shartlarni bajarish uchun quyidagi Regex-dan foydalaning:

Shartlar: 1] Min 1 maxsus belgi. 2] Min 1 raqam. 3] Min 8 ta belgi yoki ko'proq

Regex: ^ (? \u003d. * \\ D) (? \u003d. * [#) [elektron pochta bilan himoyalangan]!%&*?]){8,}$

Onlayn sinovdan o'tishi mumkin: https://regex101.com

Men buni tekshirishni xohlayman:

Parol kamida sakkizta belgini, shu jumladan kamida bitta raqamni o'z ichiga oladi va kichik va katta harflarni hamda # kabi maxsus belgilarni o'z ichiga oladi? ,! ,

Bu sizning eski parolingiz bo'lishi mumkin emas yoki foydalanuvchi nomi, "parol" yoki "veb-sayt nomi" bo'lishi mumkin

Mana mening tasdiqlash ifodam, bu sakkizta belgidan iborat, jumladan bitta katta harf, bitta kichik harf va bitta raqam yoki maxsus belgi.

(? \u003d ^. (8,) $) ((? \u003d. * \\ D) | (? \u003d. * \\ W +)) (?! [. \\ N]) (? \u003d. *) (? \u003d. * ). * $ "

Parol uchun qanday yozishim mumkin, sakkizta belgi bo'lishi kerak, jumladan bitta bosh harf, bitta maxsus belgi va alfasayısal belgilar?

@ClasG allaqachon tavsiya qilgan:

^ (? \u003d \\ S *) (? \u003d \\ S *) (? \u003d \\ S * \\ d) (? \u003d \\ S * [^ \\ w \\ s]) \\ S (8,) $

lekin u _ (pastki chiziq) ni maxsus belgi sifatida qabul qilmaydi (masalan Aa12345_).

Yaxshilangan:

^ (? \u003d \\ S *) (? \u003d \\ S *) (? \u003d \\ S * \\ d) (? \u003d \\ S * ([^ \\ w \\ s] | [_])) \\ S (8,) $

Java / Android-da parolni quyidagi tartibda kamida bitta raqam, bitta harf va bitta maxsus belgi bilan tasdiqlash uchun:

"^ (? \u003d. *) (? \u003d. * \\\\ d) (? \u003d. * [ [elektron pochta bilan himoyalangan]$!%*#?&]){8,}$"

Sizning ehtiyojingizga ko'ra, ushbu model yaxshi ishlashi kerak. Urunib ko'r,

^ (? \u003d (. * \\ d) (1)) (. * \\ S) (? \u003d. *) (8,)

Shrift o'zgaruvchisini yarating, shablonni tayinlang va mantiqiy usulni yarating, agar shablon to'g'ri bo'lsa, aks holda noto'g'ri.

String pattern \u003d "^ (? \u003d (. * \\ D) (1)) (. * \\ S) (? \u003d. *) (8,)"; String password_string \u003d "Parolni shu yerga kiriting" shaxsiy mantiqiy isValidPassword (String password_string) (return password_string.matches (Constants.passwordPattern);)

JavaScript-ni jquery.validate.min.js faylini import qiling.

Ushbu usuldan foydalanishingiz mumkin:

$ .validator.addMethod ("pwcheck", function (value) (return / [\\ @ \\ # \\ $ \\% \\ ^ \\ & \\ * \\ (\\) \\ _ \\ + \\!\u003e /. test (value) && //.test(value) && //.test(value) && //.test(value)));

  1. Hech bo'lmaganda bitta katta inglizcha harf
  2. Eng kamida bitta inglizcha kichik harf
  3. Kamida bitta raqam
  4. Kamida bitta maxsus belgi

Quyidagi ishlarga umid qilaman. Men buni maxsus Azure siyosatida sinab ko'rdim.

(? =. ) (? =. ) (? =. \\ d) (? \u003d. [@ # $% ^ & * -_ + = {} | \: ",? / ~"();!])({}|\\:",?/ ~" (); ] |. (?! @)) {6,16} $

Savolga to'g'ridan-to'g'ri javob bermayapman, lekin bu haqiqatan ham regex bo'lishi kerakmi?

Men juda ko'p Perldan foydalandim va regex muammolarini echishga odatlandim. Biroq, ular barcha ko'rinishlar va boshqa g'alati narsalar bilan yanada murakkablashganda, siz bu kichik xatolarni yo'q qilish uchun o'nlab birlik sinovlarini yozishingiz kerak.

Shuningdek, regex odatda imperativ yoki funktsional echimdan bir necha baravar sekinroq bo'ladi.

Masalan, quyidagi (FP emas) Scala funktsiyasi asl savolni eng mashhur javob regexiga nisbatan uch baravar tezroq hal qiladi. Nima qilayotgani shunchalik ravshanki, siz birlik sinoviga muhtoj emassiz:

Def validatePassword (parol: String): Boolean \u003d (if (password.length)< 8) return false var lower = false var upper = false var numbers = false var special = false password.foreach { c => if (c.isDigit) numbers \u003d true else if (c.isLower) lower \u003d true else if (c.isUpper) upper \u003d true else special \u003d true) past && yuqori && numbers && special)

Urunib ko'r:

^.*(?=.{8,})(?=.*)(?=.*)(?=.*[@#$%^&+=])*$

Ushbu regex men uchun juda yaxshi ishlaydi.

MyFunction () funktsiyasi (var str \u003d " [elektron pochta bilan himoyalangan]"; var patt \u003d yangi RegExp (" ^. * (? \u003d. (8,)) (? \u003d. *) (? \u003d. *) (? \u003d. * [@ # $% ^ & + \u003d]) * $ "); var res \u003d patt.test (str); console.log (" Doimiy o'yinlar bormi: ", res);)

Biz buni faqat HTML5 yordamida qilishimiz mumkin.

Andoza atributida quyidagi koddan foydalaning,

Pattern \u003d "(? \u003d ^. (8,) $) ((? \u003d. * \\ D) (? \u003d. * \\ W +)) (?! [. \\ N]) (? \u003d. *) (? \u003d . *). * $ "

Bu juda yaxshi ishlaydi.

Muntazam iboralarda AND operatori mavjud emas, shuning uchun amal qilish muddati boshqa narsa va boshqa narsalar bilan belgilanadigan bo'lsa, amaldagi parollarga mos keladigan regex yozish juda qiyin ...

Ammo oddiy iboralarda OR operatori mavjud, shuning uchun faqat DeMorgan teoremasini qo'llang va yaroqsiz parollarga mos keladigan oddiy iborani yozing:

Sakkiz belgidan kam bo'lgan har qanday narsa Yoki raqamsiz narsa Yoki katta harfdan boshqa narsa yo'q Yoki yoki hech narsa, kichik harflar yo'q Yoki maxsus belgilardan boshqa narsa yo'q.

^ (. (0,7) | [^ 0-9] * | [^ A-Z] * | [^ a-z] * | *) $

Agar bunga mos keladigan narsa bo'lsa, unda bu noto'g'ri parol.

Oldingi javoblardan birida topilgan echim:

Minimal 8 ta belgi, kamida 1 ta alifbo alifbosi, 1 ta kichik alifbo, 1 ta raqam va 1 ta maxsus belgi: "^ (? \u003d. ) (? =. ) (? =. \\ D) (? \u003d. [ $ @ $!% ? &]) {8,} "

Men uchun ishlamaydi, lekin quyidagi soddalashtirilgan versiya va yaxshi ishlaydi (sizga yoqadigan har qanday maxsus belgini qo'shing, men # raqamini qo'shdim) va harflar bilan bo'lgani kabi raqamlar qoidasini qo'shing:

"^(?=.*)(?=.*)(?=.*)(?=.*[[elektron pochta bilan himoyalangan]$!%*?&]){8,}"

Men Piter Mortensenga javob berar edim, ammo obro'-e'tiborim etarli emas.

Uning ifodalari belgilangan minimal talablarning har biri uchun idealdir. Maxsus belgilarni talab qilmaydigan uning iboralari bilan bog'liq muammo shundaki, ular maxsus belgilarga ega emaslar va maksimal talablarni taqdim etishadi, men OP talab qilganiga ishonmayman. Odatda, sizning foydalanuvchilaringiz parollarini xohlagancha kuchli qilishlarini xohlaysiz; Nima uchun kuchli parollarni cheklash kerak?

Shunday qilib, uning "kamida sakkizta belgi, kamida bitta harf va bitta raqam":

^ (? \u003d. *) (? \u003d. * \\ d) (8,) $

minimal talabga etadi, ammo boshqa belgilar bo'lishi mumkin faqat harf va raqamlar. Maxsus belgilarga ruxsat berish (lekin kerak emas) uchun siz quyidagilarni ishlatishingiz kerak:

^ (? \u003d. *) (? \u003d. * \\ d). (8,) $ har qanday belgilarga ruxsat berish

^ (? \u003d. *) (? \u003d. * \\ d) (8,) $ maxsus maxsus belgilarga ruxsat berish uchun

Xuddi shunday, "kamida sakkizta belgi, kamida bitta katta harf, bitta kichik harf va bitta raqam:

^ (? \u003d. *) (? \u003d. *) (? \u003d. * \\ d) (8,) $

ushbu minimal talabga javob beradi, lekin imkon beradi faqat harflar va raqamlar. Foydalanish:

^ (? \u003d. *) (? \u003d. *) (? \u003d. * \\ d). (8,) $ har qanday belgilarga ruxsat berish uchun

^ (? \u003d. *) (? \u003d. *) (? \u003d. * \\ d) (8,) maxsus maxsus belgilarga ruxsat berish.

Quyidagi shartlarni qondirish uchun quyidagi Regex-dan foydalaning: Shartlar: 1] Min 1 katta harf. 2] Min 1 kichik harf. 3] Min 1 maxsus belgi. 4] Min 1 raqam. 5] Min 8 ta belgi. 6] Maksimal 30 ta belgi. Regex: /^(?\u003d.*)(?\u003d.*)(?\u003d.*\\d)(?\u003d.* 47,4 [elektron pochta bilan himoyalangan]!%&*?]){8,30}$/

Parol ishlab chiqaruvchisi real vaqtda parollarni yaratadi. Yaratilgan parollar hech qanday joyda saqlanmaydi va faqat qurilmangizda (kompyuter, planshet yoki smartfon) ko'rsatiladi.

Har safar sozlamalarni o'zgartirganda, "Yaratish" tugmachasini bosing yoki sahifani qayta yuklang, yangi parollar yaratiladi.

Odatiy bo'lib, parollarni yaratish uchun inglizcha kichik va katta harflar, raqamlar va ba'zi xizmat belgilaridan foydalaniladi. Belgilar ro'yxatini o'zgartirish uchun "Parol yaratuvchisi sozlamalari"

Parol ishlab chiqaruvchisi sozlamalari

Parol uzunligi
Parol ishlab chiqaruvchisi 5 dan 30 gacha uzunlikdagi parollarni yaratadi. Parollar dastlab uzunligi 10 ta belgidan iborat bo'ladi. Umuman olganda, uzunligi 7 belgidan kam bo'lgan parollardan foydalanish tavsiya etilmaydi. Uzunroq parollardan foydalanish xakerlikdan kuchli himoya qilish uchun tavsiya etiladi, lekin ularni saqlash yoki eslab qolish noqulay bo'lishi mumkin.

Ingliz va rus harflari
Parol uchun an'anaviy ravishda ingliz (lotin) harflari ishlatiladi, ammo rus tilidan ham foydalanish mumkin. Rossiya harflari qo'pollik bilan yorilishga urinishda parollarning murakkabligini sezilarli darajada oshiradi, lekin ehtiyot bo'ling, ehtimol ba'zi tizimlar kirill yozuvini o'z ichiga olgan parollarni qo'llab-quvvatlamaydi. Oldindan tekshirish tavsiya etiladi.

Raqamlar
Paroldagi raqamlar majburiy bo'lishi kerak. Parolda raqamlarning mavjudligi parol sifatini yaxshilaydi, raqamlar bilan parollarni eslab qolish osonroq.

Maxsus belgilar
Yorilishga eng chidamli maxsus belgilarni o'z ichiga olgan parollar. Ro'yxatdan o'tish paytida ko'plab tizimlar parolga xizmat belgilarini kiritish kerakligini talab qiladi. Bunday belgilarni ishlatishni e'tiborsiz qoldirmasligingizni va ularni yaratilgan parolga qo'shishingizni tavsiya qilamiz.

Istisnolar

Ingliz tiliga o'xshash ruscha belgilar va rus tiliga o'xshash inglizcha belgilar
Agar siz onlayn parol yaratuvchisidan foydalanishda ingliz va rus harflaridan foydalansangiz, ba'zi ingliz va rus belgilarining ingl. "O'xshashligi" muammosiga duch kelishingiz mumkin. A va A, B va B, C va C, E va E (a, ah, ve, bi, es, si, e va) kabi harflar bir xil ko'rinishga ega bo'lsa-da, har xil harflardir. Parollardan keyingi foydalanishda chalkashliklarni oldini olish uchun tegishli sozlamalar elementidan foydalaning.

Unlilarni chiqarib tashlang yoki undoshlarni chiqarib tashlang
Parol yaratishda unli yoki undoshlarni chiqarib tashlamoqchi bo'lsangiz, ushbu qo'shimcha sozlamalardan foydalaning.

Shunga o'xshash belgilarni chiqarib tashlang
I, l, 1, | belgilariga qarang (ay, el, birlik, quvur). Ushbu harflar, belgilar va raqamlar yozishda juda o'xshashdir, shuning uchun parolni saqlashda va undan foydalanishda xatolar bo'lishi mumkin. Bunday xatolarni istisno qilish uchun ushbu sozlamadan foydalaning.

Boshqa sozlamalar

Ishlatilgan belgilar ro'yxati
Parol ishlab chiqaruvchisi ishlatilgan belgilar ro'yxati oynasida joriy sozlamalarni hisobga olgan holda parollar tuzilgan barcha belgilar mavjud. Ro'yxatni tahrirlash mumkin - keraksizlarni o'chirib tashlang va kerakli belgilarni qo'shing. Ro'yxatni tahrirlash oynasida belgilarni o'chirishda yoki qo'shganda, kiritilgan o'zgarishlarni hisobga olgan holda avtomatik ravishda yangi parollar yaratiladi.

Sozlamalarni tiklash
Parol yaratuvchisidan foydalanish paytida qilingan barcha sozlamalar avtomatik ravishda brauzeringiz xotirasida (cookies) saqlanadi. Bu sozlamalar saqlanadi, lekin parollar emas! Yuqorida aytib o'tganimizdek, har safar yangi parollar yaratiladi. Sozlamalarni asl holatiga qaytarish uchun "Sozlamalarni tiklash" havolasidan foydalaning. Qayta tiklashda asl sozlamalar asosida yangi parollar avtomatik ravishda yaratiladi.

Parol yaratuvchisiga havola
Agar siz "Parol yaratuvchisi" ga havolani do'stingizga yubormoqchi bo'lsangiz yoki uni ijtimoiy tarmoqlarga joylashtirmoqchi bo'lsangiz, manzilni generator korpusining pastki qismida joylashgan maxsus oynadan nusxa oling. Havola bilan birga siz tanlagan sozlamalar uzatiladi.

Parollar, parollar, parollar - ular Internetning hamma joylarida kerak. Har safar qaysi parolni qo'yish kerakligini o'ylab ko'rishingiz kerak, shunda uni buzib bo'lmaydi. Xo'sh, parol nima bo'lishi kerak?

Kuchli parol belgilari

  • Parol uzun bo'lishi kerak, ya'ni. 8 dan 12 gacha belgidan iborat bo'lishi kerak.
  • Yaxshi parol katta (A, P, V, W) va kichik (m, d, f, j) harflar, belgilar (#, @, ~, ^), tinish belgilari va bo'shliqlarni o'z ichiga oladi.
  • Parolni yaratishda siz va oilangiz haqidagi ma'lumotlarni (ismlar, familiyalar, unutilmas sana, telefon raqamlari) o'z ichiga olgan ma'lumotlarni chiqarib tashlang.
  • To'liq yozilgan har qanday tilni o'z ichiga olgan paroldan voz keching, iboralar, mashhur takliflar.
  • 12345, qwerty va shunga o'xshash parollardan foydalanmang. Ha, bu haqda hamma biladi, ammo bunday parollar hali ham mashhur.
  • Kirishingizga mos keladigan parollardan saqlaning. Albatta, bunday parolni yozish eng oson va uni yodlash shart emas, lekin uni buzish ham oddiydir.

Barcha saytlar va forumlarda vaqti-vaqti bilan turli xil parollarni yangilab turishga va ulardan foydalanishga harakat qiling.

Qanday qilib murakkab parolni topishim mumkin?

Kuchli parolni topishning bir necha samarali usullari mavjud:

  • Aralash. Biz kirillcha so'zni lotin registriga kiritamiz, har bir harfdan keyin siz uchun muhim raqamlarni kiritamiz (uy raqami, kvartira raqami) yoki ba'zi harflarni raqamlarga aylantiramiz (B harfi o'rniga I - 9I o'rniga 6 raqamini qo'yamiz va hokazo)
  • So'z yoki iborani noto'g'ri joylarga bo'sh joylar bilan yozamiz. Masalan, "mening ypa rolim".
  • Shift tugmachasini navbat bilan bosib, iborani kiritamiz. Masalan, BoT-VeDyZ @ SADA
  • Biz ikkita so'zni tanlaymiz - sifat (bepul) va fe'l (yugurish). Biz muhim yilni qo'shamiz, masalan 1980 yil va har qanday belgi. Biz olamiz: Bepul 19% RUN 80!
  • Noto'g'ri yozilgan parolni kiritish va uni belgilar va raqamlar bilan ta'minlash: KoKoy№ & _Pass.
  • Biz rus folklorini yoki she'riyatini eslaymiz va xabarni shifrlaymiz. Masalan, "Sabr va mehnat hamma narsani ezadi" degan maqolni olaylik. Keling, har bir so'zning har bir birinchi harfini ingliz tilida kichik harf bilan, har bir soniyasini katta harf bilan yozamiz. So'zlar orasiga tinish belgilarini qo'yamiz. Biz quyidagilarni olamiz: tE! I? TR? VS! PT.

Qiyinmi? Ammo siz shu tarzda o'ylab topgan parol ishonchli bo'ladi.

Agar siz parolni topa olmasangiz, parol ishlab chiqaruvchilardan foydalaning:

Kirish bilan qanday tanishish mumkin

Saytda ro'yxatdan o'tish login ishlatmasdan amalga oshirilmaydi. Kirish - bu sizning ismingizni tarmoqdagi ifodalovchi belgilar (harflar yoki raqamlar) to'plamidir. Kirish avtorizatsiya qilish uchun parol bilan birga kiritiladi. Kirish tanlashga yaxshilab murojaat qilishingiz kerak.

Agar kirish ish uchun ishlatilsa, haqiqiy ism va familiyani ko'rsatish kerak (Petr-Ivanov, Petr_Ivanov, Petr.Ivanov). Bu kirish allaqachon olinganmi? Otasining ismini qo'shing. Va bu variant mavjud emasmi? Kasb nomini ismga ilova qiling, uni qisqartirishingiz mumkin. Masalan: Aleksey-Pirogov-PR, Vasiliy-Toropov-surat.

Agar sizga shaxsiy maqsadlar uchun kirish kerak bo'lsa, quyidagilarni qilishingiz mumkin:

  • O'zingiz yoqtirgan so'z yoki iborani, taniqli kishining ismini, xarakterini, musiqiy guruh nomini ishlatib, login bilan chiqing.
  • Xobbi haqida o'ylab ko'ring va san'at va texnologiyalar dunyosining afzalliklari asosida login bilan chiqing.
  • Har qanday chet tilidagi so'zlardan login yarating.
  • Oynali tasvirni qo'llang va ismni teskari tomonga bosib chiqaring.
  • Kirish generatoridan foydalaning.

Hamkorlik dasturi: eng yaxshi xizmatni tanlash!

Vazifa trekerlari, ular shuningdek vazifalar menejerlari yoki hamkorlik xizmatlari bo'lib, turli darajadagi zamonaviy menejerlarning asosiy raqamli yordamchilari hisoblanadi. A…

Qidiruv tizimlarida xizmatlarni targ'ib qilish

Qidiruv motorlarni reklama qilish - bu xaridorlarni jalb qilish uchun eng arzon kanallardan biri. Ammo agentlikda har kim ham aktsiyani buyurtma qila olmaydi ...

Internetdan foydalanadigan har qanday shaxs, ehtimol, bir necha bor parollarni topish va o'rnatish zarurati bilan duch kelgan: pochta orqali kirish, forumdagi hisob qaydnomasi, onlayn-bank uchun. Va deyarli har bir ro'yxatdan o'tish formasida sizga kuchli parolni taklif qilish tavsiya etiladi. Axir sizning yozishmalaringizning maxfiyligi va sizning pulingiz va umuman sizning kompyuteringiz xavfsizligi sizning maxfiy so'zingiz yoki iborangiz qanchalik murakkab bo'lishiga bog'liq. Savol tug'iladi: qanday qilib murakkab parolni topasiz?

Qanday qilib kuchli parolni topish mumkin

Uzunlik... Kuchli parol uchun tavsiya etilgan minimal uzunlik 8 belgidan iborat. Uzunligi 8 va undan ortiq belgidan iborat parollarni qo'pol kuch bilan yorib chiqish o'ta uzoq jarayon va tajovuzkorning bunday kombinatsiyani topishi ehtimoli juda kichik deb ishoniladi.

Ro'yxatdan o'tish... Yaxshi parol kichik va katta harflardan iborat bo'lishi kerak.

Maxsus belgilar... Juda xavfsiz parol, harflar va raqamlar bilan birga maxsus belgilarni ham o'z ichiga oladi. Masalan, #, ~, +, _

Umuman olganda, ideal variant katta va kichik lotin harflari, raqamlari va umumiy uzunligi kamida 8 ta belgidan iborat maxsus belgilar birikmasi bo'ladi. Masalan:

uE_xm932
9203Jb # 1
2.Raqobat! 2

Hech qanday holatda parol sifatida foydalanish mumkin emas

Hech qachon parol yoki maxfiy so'z sifatida ishlatmang:

  • tug'ilgan sana
    Vkontakte-dagi sahifangizga parol sifatida tug'ilgan kuningizni 12071992 formatida belgilashingiz eng katta bema'nilikdir.
  • telefon raqamlari
    Sizning telefon raqamingizdan iborat parolni faqat dangasalar buzolmaydi. Va ularning soni qancha bo'lishi muhim emas 🙂
  • hayvonlarning ismlari, familiyalari, taxalluslari
    Odamlar onaning qiz ismini sehrli ishonchli himoya deb bilishlari juda kulgili. ... buni butun hovli 50 yildan beri biladi 🙂
  • va, albatta, "qwerty123", "parol", "parol", "********", "123", "12345678", "phywa", "asdf" va boshqalar kabi har xil bema'niliklar. Aytgancha, kotiblarning parollari orasida etakchi "bitta", ya'ni bitta bitta raqam "1" 🙂

Xulosa

Xavfsizligingizni e'tiborsiz qoldirmang.

Klaviatura tartibi va parol

Turli xil saytlarda va xizmatlarda avtorizatsiya qilish uchun bir xil maxfiy so'zlardan foydalanmang. Bitta saytni buzib kirgan tajovuzkorlar sizning tarmoqdagi barcha akkauntlaringizga kirish huquqiga ega bo'lishlari mumkin. Masalan, ular sizning bulutli diskingizga yoki Google Photos-ga kirish huquqiga ega bo'ladi. Va esda tuting: hech narsa vaqtinchalikdan ko'ra doimiyroq emas. Shuning uchun, kuchli kombinatsiyalarni taklif qilish va murakkab parollarni o'rnatish uchun dangasa bo'lmang. birdaniga - bu masalani keyinroq qoldirmang. Ma'lumotlaringiz faqat siz uchun mavjud bo'lsin! Omad!

Bu qiziq bo'lishi mumkin:

Lotin tili fonetikasi

Lotin alifbosi

Lotin alifbosi turli xil til guruhlaridan ko'plab boshqa tillarni yozishning asosidir.

Lotin alifbosi, yunon alifbosidan kelib chiqqan - va ba'zi manbalarga ko'ra - etrusk alifbosi, shakllanganmiloddan avvalgi VII asr atrofida

Zamonaviy lotin alifbosi o'z ichiga oladi 26 ta harf.

Lotin alifbosidagi harflar:

Katta harf
harflar
lotin
alifbo
Kichik harf
harflar
lotin
alifbo
Ism
harflar
lotin
alifbo
Talaffuz
harflar
lotin
alifbo
A
B
C
D.
E
F
G
H
Men
J
K
L
M
N
O
P
Q
R
S
T
U
V
V
X
Y
Z
a
b
v
d
e
f
g
h
men
j
k
l
m
n
o
p
q
r
s
t
siz
v
w
x
y
z
a
bae
tse
te
e, e
eff
ge
ha, ha
va
iot, iota
ka
ale
Em
uz
haqida
pe
ku
er
es
te
da
va
er-xotin
X
upsilon
zeta
[a]
[b]
[c]
[d]
[uh]
[f]
[g]
[g]
[va]
[th]
[ga]
[l]
[m]
[n]
[haqida]
[P]
[ga]
[R]
[dan]
[t]
[y]
[ichida]
[ichida]
[ks]
[va]
[h], [dz]

Dastlab lotin alifbosi faqat kiritilgan 21 ta harf:
A B C D E F Z H I K L M N O P Q R S T V X.

Keyin etarlicha uzoq vaqt davomida lotin alifbosi quyidagi o'zgarishlarni amalga oshirdi:
- miloddan avvalgi 312 yilda.

undan edi chiqarib tashlangan Z harfi va lotin alifbosi 20 harfgacha qisqartirildi;
- miloddan avvalgi 234 yilda e.

Qanday qilib kuchli parol va loginni topishim mumkin?

edi yaratilgan G harfi C-ga to'siq qo'shib (ilgari C harfi ikkita tovushni - [k] va [g] belgilash uchun ishlatilgan);
- miloddan avvalgi 1-asrda e. edi y va Z harflarini qo'shdi yunon tilidan olingan so'zlarni yozish.

Natijada, u chiqdi klassik lotin alifbosi 23 harfdan:
A B C D E F G H I K L M N O P Q R S T V X Y Z

O'rta asrlarda lotin alifbosi oxirgi modifikatsiyadan o'tdi:
- 11-asrda alifbo mavjud edi w harfi qo'shildi;
- XVI asrda ular mavjud edi j va U harflarini kiritdi,
va zamonaviy shaklini oldi.

Biroq, ko'pincha gapirish to'g'ri lotin alifbosi, deb o'ylayman lotin alifbosi 25 ta harfdan iborat... Buning sababi shundaki, asosan nemis va ingliz familiyalarini yozishda ishlatiladigan W harfi bu holda lotin alifbosidagi harflarga kiritilmagan.

Bo'limlarning boshqa materiallariga o'ting:
Lotin tili fonetikasi
Lotin grammatikasi
Rim raqamlari

8 ta belgidan iborat lotin paroli

Lin "Kofeman" [hujjat]

Ha, siz mutlaqo haqsiz. Sizning ifodangiz uchun tashakkur. Men muntazam mavsumda kuchsizman, shuning uchun buni tanlov usuli bilan qildim.

AB ... [hujjat]
Va men sanani uch qismga ajratgan bo'lardim (bo'linish usuli), so'ngra fevral va o'tish yilini tekshirish bilan oddiy tekshiruv o'tkazdim.

Ma'lumotni yuborishdan oldin bu sana kiritilish sanasini tasdiqlash uchun kerak edi. Ammo, aytaylik, bu erda sizga "sds20.dfsdf546sdf20.sdf.dfgd.dfgfg02.135151351" kiritildi. Ajabo, bu erda bo'linish sizga qanday yordam beradi?

Oh, men xato qildim, qavs ichida unutdim, mingta uzr so'radim (. Xatolar ko'proq bo'lishi mumkin - men kodni sinab ko'rmadim, bu g'oyaning demosi.

tcolonel [hujjat], bilan funktsional jihatdan teng muntazam (fevral, kabisa yillari va hk.;)?

Qanday qilib kuchli parol yaratish mumkin

tcolonel [dossier] Sizning muntazam ishingiz zararli, chunki u xayoliy xavfsizlik hissi yaratadi, ertami-kechmi o'zingizni yoki sizga hamroh bo'ladigan kishini itaradi. Agar kod muammoni to'g'ri hal qilmasa, unda uning samaradorligi, shuningdek, gugurtda sifat va xavfsizlik hisobiga tejalishi juda shubhali. Bu professional yondashuv emas. Umid qilamanki, buni shaxsiy haqorat sifatida qabul qilmaysiz :)

Hurmatli muallif, muammoni boshqa tekislikdan ko'rib chiqing, shunda siz o'zingiz qaerga ketayotganingiz o'rniga muammoni hal qilishning to'g'ri yo'li aytilganligini tushunasiz. Bu menga yoriqlar ustiga yopishqoq lenta qo'yish kabi harakatlaringizni eslatadi.

xabar boshqarildi

11.00.2006 yilni qabul qiladi

Bonus sifatida allaqachon yuqori hosil olish yilini tekshiradigan quyidagi iboradan foydalaning. Undan foydalaning, janoblar!

Barchangizga xayrli kun, dd.mm.yyyy formatidagi sana uchun odatiy iborani yozishda yordam bering.
Oddiy o'ylab topilgan:

/(\\d(2)\\.\\d(2)\\.\\d(4))/

lekin, men 32.32.yyyy kiritishim mumkin. Va kirishni bir necha kunga cheklashingiz kerak - 31, oy - 12.

Men buni sinab ko'rdim:

/()\\.()\\.(\\d(4))/

lekin, to'g'ri ishlamaydi, dan

12.12.2009 01.12.2009 01.02.2009 10.14.2009

faqat 2 ta o'yinni topadi:

1: 01.12.2009 2: 01.02.2009

Oxirida nima bo'ldi:

/(((())11))((1)(1)))(.((1)(1)|(1)(1)))\\\\ ((dd44))/

kimdir yaxshiroq g'oyani taklif qilishi va ushbu iborani sharhlashi mumkinmi (to'g'ri ishlaydi)?

Bu ma'nosiz o'lchovdir.
Aytgancha, sizda noto'g'ri ifoda bor, siz 20 va 10-oylarga kira olmaysiz.

Men shunday bir narsa yozar edim:

/(\\d|3)\\.(0\\d|1)\\.(\\d(4))/

/(\\d|3)\\.(0\\d\\1)\\.(\\d(4))/ aytmoqchi, qiziqarli ibora, buning iloji borligini bilmasdim ...

tcolonel [dossier] va hamma narsa siz tasavvur qilganingizdan ancha soddadir. bir nechta echimlar mavjud. masalan, er-xotin:

  1. foydalanuvchiga o'zboshimchalik bilan ma'lumotlarni kiritishiga yo'l qo'ymang, ushbu maydonga kiritishni bloklang va shu bilan birga havoladagi faqat taqvimdan foydalaning.
  2. agar siz bepul kiritish imkoniyatini beradigan bo'lsangiz, topshirishdan oldin siz boshlang'ich tekshiruvlarni bajaring va agar biror narsa noto'g'ri bo'lsa, uni tuzatishni maslahat berasiz. ushbu parametrda va men aytib o'tgan sanani normal tekshirishni amalga oshiring. qanday qilib amalga oshiriladi, bir vaqtning o'zida axlatdan qanday qutulish mumkin va har bir kishi qanday hodisadan foydalanadi, ehtimol bu aniq mavzuni tushuntirishga arzimaydi.

Shunga o'xshash narsa?

function dateIsCorrect (dateString) {
var parts \u003d dateString.split (‘.’);
if (parts.length! \u003d 3) return false;
harakat qilib ko'ring (
var tmpDate \u003d yangi Sana (qismlar, qismlar, qismlar, 12);
return (dateString \u003d\u003d tmpDate.getDate () + ‘. '+ tmpDate.getMonth +'. '+ tmpDate.getFullYear ());
catch (ex) (return false;)
}

Agar sana yaroqsiz bo'lsa, Date ob'ekti uni mos keladigan normal sanaga qayta hisoblab chiqadi va mag'lubiyatga aylantirilganda u asl nusxaga o'xshamaydi.

AB ... [dossier] Ha, barchasi tushunarli, agar kodning tejamkorligi va samaradorligi haqida gapirmasa, unda siz butun algoritmlarni bajarishingiz mumkin, shunchaki bitta kod satriga oddiy ifoda bilan qancha keraksiz xatti-harakatlar borligini ko'ring)))

Ilya Streltsyn aka SelenIT [hujjat] Yomon variant ham emas - rahmat, lekin regexli bitta satr kodiga nisbatan juda ko'p kodlarga ega.

Ishtirok etganingiz uchun barchangizga tashakkur.

Ilya Streltsyn aka SelenIT [hujjat] funktsional jihatdan teng regex bilan (fevral, sakrash yillari va hk.;)?

men roziman.

Thirteensmay [dossier] Sizning doimiy mavsumingiz zararli hisoblanadi, chunki u xayoliy xavfsizlik hissi yaratadi, ertami-kechmi siz o'zingizni yoki sizga hamroh bo'ladigan kishini itarasiz. Agar kod muammoni to'g'ri hal qilmasa, unda uning samaradorligi, shuningdek, gugurtda sifat va xavfsizlik hisobiga tejalishi juda shubhali. Bu professional yondashuv emas. Umid qilamanki, buni shaxsiy haqorat sifatida qabul qilmaysiz :)

men roziman.

AB… [hujjat] Hurmatli muallif, muammoni boshqa tekislikdan ko'rib chiqing, shunda siz o'zingiz qaerda ketayotganingiz o'rniga muammoni hal qilishning to'g'ri yo'li so'ralayotganini tushunasiz. Bu menga yoriqlar ustiga yopishqoq lenta qo'yish kabi harakatlaringizni eslatadi.

men roziman.

Janoblar, men hammaning fikriga qo'shilaman. Konstruktiv tanqidingiz uchun tashakkur. Tanlov odatiy ifodaga to'g'ri keldi, chunki u ushbu loyiha uchun nima qilsa etarli. Va bunday "qattiq" tekshiruvga ehtiyoj yo'q.

P.S: Boshqa loyihadagi barcha sharhlaringizni inobatga olgan holda, men allaqachon boshqa yo'ldan ketdim. Va AB maslahat berganidek qildi ... [ma'lumot] birinchi lavozimida.

Buni kim yozgan, katta rahmat)))

Yuqorida tavsiya etilgan iborani ishlatmang

/(\\d|3)\\.(0\\d|1)\\.(\\d(4))/
11.00.2006 yilni qabul qiladi

Bonus sifatida allaqachon yuqori hosil olish uchun sinovdan o'tgan quyidagi iboradan foydalaning.

Undan foydalaning, janoblar!

^ (((0 | \\ d | 3) \\. (0 | 1) \\. ((19 | \\ d) \\ d (2))) | ((0 | \\ d | 30) \\. (0 | 1) ) (. (19 | \\ d) \\ d (2))) | ((0 | 1 \\ d | 2) \\. 02 \\. ((19 | \\ d) \\ d (2))) | (29 \\ .02 \\. ((1 | \\ d) (0 ||) | ((16 ||) 00)))) $

Buni sinab ko'rish uchun menga regex kerak:

Parol kamida sakkizta belgini, shu jumladan kamida bitta raqamni o'z ichiga oladi va kichik va katta harflarni hamda # ,? kabi maxsus belgilarni o'z ichiga oladi. ,! ...

Bu sizning eski parolingiz bo'lishi mumkin emas yoki foydalanuvchi nomi, "parol" yoki "veb-sayt nomi" bo'lishi mumkin

Mana, mening tasdiqlash ifodam, bu sakkizta belgidan iborat, jumladan bitta katta harf, bitta kichik harf va bitta raqam yoki maxsus belgi.

(? \u003d ^. (8,) $) ((? \u003d. * \\ D) | (? \u003d. * \\ W +)) (?! [. \\ N]) (? \u003d. *) (? \u003d. * ). * $ "

Parol uchun qanday yozishim mumkin, sakkizta belgidan iborat bo'lib, bitta bosh harf, bitta maxsus belgi va alfasayısal belgilar bo'lishi kerak?

javascript asp.net regex

24 javob


877

Kamida sakkizta belgi, kamida bitta harf va bitta raqam:

"^ (? \u003d. *) (? \u003d. * \\ d) (8,) $" "

Kamida sakkizta belgi, kamida bitta harf, bitta raqam va bitta maxsus belgi:

"^ (? \u003d. *) (? \u003d. * \\ d) (? \u003d. * [@ $!% * #? &]) (8,) $"

Kamida sakkizta belgi, kamida bitta katta harf, bitta kichik harf va bitta raqam:

"^ (? \u003d. *) (? \u003d. *) (? \u003d. * \\ d) (8,) $" "

Kamida sakkizta belgi, kamida bitta katta harf, bitta kichik harf, bitta raqam va bitta maxsus belgi:

"^ (? \u003d. *) (? \u003d. *) (? \u003d. * \\ d) (? \u003d. * [@ $!% *? &]) (8,) $"

Minimal sakkiz va maksimal 10 ta belgi, kamida bitta katta harf, bitta kichik harf, bitta raqam va bitta maxsus belgi:

"^ (? \u003d. *) (? \u003d. *) (? \u003d. * \\ d) (? \u003d. * [@ $!% *? &]) (8,10) $"


53

Muntazam iboralarda AND operatori yo'q, shuning uchun haqiqat VA, boshqa narsa VA, yana bir narsa bilan aniqlanganda haqiqiy parollarga mos keladigan regex yozish juda qiyin ...

Ammo regexlarda OR operatori bor, shuning uchun DeMorgan teoremasini qo'llang va noto'g'ri parollarga mos keladigan regex yozing:

Sakkiz belgidan kam narsa Yoki raqamlarni o'z ichiga olmaydi Yoki katta harflarni o'z ichiga olmaydi Yoki yoki kichik harflarni o'z ichiga olmaydi Yoki maxsus belgilar bo'lmagan har qanday narsa.

^ (. (0,7) | [^ 0-9] * | [^ A-Z] * | [^ a-z] * | *) $

Agar bunga mos keladigan narsa bo'lsa, unda bu noto'g'ri parol.


29

@ Anubhava javobi uchun biroz yaxshilanish: maxsus belgilar faqat klaviaturadagi belgilar bilan cheklanganligi sababli, har qanday maxsus belgi uchun foydalaning:

^ (? \u003d. *?) (? \u003d (. *) (1,)) (? \u003d (. * [\\ D]) (1,)) (? \u003d (. * [\\ W]) (1,) )) (?!. * \\ s). (8,) $

Ushbu regex quyidagi qoidalarni qo'llaydi:

  • Hech bo'lmaganda bitta katta inglizcha harf
  • Eng kamida bitta inglizcha kichik harf
  • Kamida bitta raqam
  • Kamida bitta maxsus belgi
  • Uzunligi kamida sakkizta


20

Vaziyatim bo'yicha eng mashhur javobni bajarishda biroz qiynaldim. Masalan, mening tekshiruvim quyidagi belgilar bilan muvaffaqiyatsiz tugadi; yoki [. Menga maxsus belgilarning oq ro'yxatini kiritish qiziq emas edi, shuning uchun men [^ \\ w \\ s] ni test sifatida ishlatardim - sodda qilib, so'zsiz (shu jumladan raqamli) va bo'sh joy bo'lmagan belgilarga mos kelaman. Xulosa qilib aytganda, men uchun nima ishlagan ...

  • kamida 8 ta belgidan iborat
  • kamida 1 ta raqamli belgi
  • kamida 1 ta kichik harf
  • kamida 1 bosh harf
  • kamida 1 ta maxsus belgi
/^(?\u003d.*?)(?\u003d.*?)(?\u003d.*?)(?\u003d.*? [^ \\ w \\ s\u003e). (8,) $ / ^ (? \u003d \\ S *) (? \u003d \\ S *) (? \u003d \\ S * \\ d) (? \u003d \\ S * [^ \\ w \\ s]) \\ S (8,) $

lekin u _ (pastki chiziq) ni maxsus belgi sifatida qabul qilmaydi (masalan. Aa12345_).

Yaxshilangan:

^ (? \u003d \\ S *) (? \u003d \\ S *) (? \u003d \\ S * \\ d) (? \u003d \\ S * ([^ \\ w \\ s] | [_])) \\ S (8,) $


2

Men bu erda juda ko'p muammolarni topdim, shuning uchun o'zim qildim.

Mana, u o'zining ulug'vorligida, sinovlar bilan:

^ (? \u003d. *) (? \u003d. *) (? \u003d. * \\ d) (? \u003d. * ([^ a-zA-Z \\ d \\ s])). (9,) $

E'tibor qilish kerak bo'lgan narsa bor:

  1. \\ w dan foydalanmaydi, chunki unga sinovdan o'tayotgan _ kiradi.
  2. Belgilarning mos kelishi satr oxiriga to'g'ri kelmasligi bilan juda ko'p muammolarga duch keldim.
  3. Belgilar aniq ko'rsatilmagan, buning sababi shundaki, turli xil joylar klaviaturalarida foydalanishi mumkin bo'lgan turli xil belgilarga ega bo'lishi mumkin.


1

Biz buni faqat HTML5 bilan qilishimiz mumkin.

Quyidagi kodni naqsh atributidan foydalaning,

Pattern \u003d "(? \u003d ^. (8,) $) ((? \u003d. * \\ D) (? \u003d. * \\ W +)) (?! [. \\ N]) (? \u003d. *) (? \u003d . *). * $ "

Bu mukammal ishlaydi.


1

Parol sizning taxminlaringizga javob beradimi yoki yo'q bo'lsa, uni tasdiqlash uchun quyidagi regex naqshidan foydalanishingiz mumkin.

((? \u003d. * \\\\ d) (? \u003d. *) (? \u003d. *) (? \u003d. * [ [elektron pochta bilan himoyalangan]#$%^&*()]).{8,20})


1

Quyidagi shartlarni bajarish uchun quyidagi Regex-dan foydalaning:

Shartlar: 1] Min 1 maxsus belgi. 2] Min 1 raqam. 3] Min 8 ta belgi yoki ko'proq

Regex: ^ (? \u003d. * \\ D) (? \u003d. * [#) [elektron pochta bilan himoyalangan]!%&*?]){8,}$


0

Java / Android-da parolni kamida bitta raqam, bitta harf va bitta maxsus belgi bilan quyidagicha tekshiring:

"^ (? \u003d. *) (? \u003d. * \\\\ d) (? \u003d. * [ [elektron pochta bilan himoyalangan]$!%*#?&]){8,}$"


0

Buni sinab ko'ring:

^.*(?=.{8,})(?=.*)(?=.*)(?=.*[@#$%^&+=])*$

Ushbu regex men uchun juda yaxshi ishlaydi.

MyFunction () funktsiyasi (var str \u003d " [elektron pochta bilan himoyalangan]"; var patt \u003d yangi RegExp (" ^. * (? \u003d. (8,)) (? \u003d. *) (? \u003d. *) (? \u003d. * [@ # $% ^ & + \u003d]) * $ "); var res \u003d patt.test (str); console.log (" Doimiy o'yinlar bormi: ", res);)


0

Quyidagi ishlarga umid qilaman. Men buni maxsus Azure siyosatida sinab ko'rdim.

^(?=. ) (?=. ) (?=. \\ d) (? \u003d. [@#$%^&*-_+={}|\:",?/ ~"();!])({}|\\:",?/ ~"();!]|.([elektron pochta bilan himoyalangan])){6,16}$


-1

Oldingi javoblardan birida topilgan echim quyidagicha:

Kamida 8 ta belgidan kamida 1 ta katta alifbo, 1 ta kichik alifbo, 1 ta raqam va 1 ta maxsus belgi: "^ (? \u003d. ) (?=. ) (?=. \\ d) (? \u003d. [[elektron pochta bilan himoyalangan]$!% ?&]){8 ,}" ..

.

u men uchun ishlamadi, lekin quyidagi soddalashtirilgan versiya va yaxshi ishlaydi (sizga yoqadigan har qanday maxsus belgini qo'shing, men # raqamini shu erga qo'shdim) va shuningdek quyidagi kabi harflar bilan raqamlar qoidasini qo'shing:

"^(?=.*)(?=.*)(?=.*)(?=.*[[elektron pochta bilan himoyalangan]$!%*?&]){8,}"


Java shartli bayonotidan foydalangan holda regex parolini tekshirish

Men regex uchun yangiman. Men Java-da quyidagi talab uchun parolni tasdiqlashim kerak: Parol kamida olti belgidan iborat bo'lishi kerak. Parol 20 ta belgidan iborat bo'lishi mumkin ...


regex faqat harflar, raqamlar, nuqta, pastki chiziqlar, chiziqlarga ruxsat beradi. kamida 5 ta belgi

Qanday qilib regexni quyidagi qoidalarga muvofiq qilish kerak, faqat harflar (katta yoki kichik), raqamlar, nuqta, pastki chiziq, chiziqcha kamida 5 ta belgidan iborat bo'lishi mumkin. Umumiy atamalar yoki kengaytmalarni o'z ichiga olmaydi ...


Regex-ga "maxsus belgilar yoki bo'shliqlarni taqiqlash", lekin "raqamlarga ruxsat berish" va "katta" yoki "kichik" harflar "

Men allaqachon ushbu regexdan foydalanmoqdaman: ^ (6,) $ bu quyidagilarga imkon beradi: raqamlar, katta harflar, kichik harflar. u taqiqlaydi: bo'shliqlar va maxsus belgilar yoki belgilar. Lekin men buni quyidagicha o'zgartirmoqchiman: - ruxsat: ...


Parol uchun muntazam ifoda

Menga regex parolini yaratishda yordam kerak. Parolda kamida 4 ta belgi, harflar (katta va kichik), raqamlar va maxsus belgilar bo'lishi kerak - bo'sh joy yo'q. MSN doimiy ibora sifatida.


Berilgan qoidalarning kombinatsiyasi uchun Regex

Parolni ma'lum bir qoida uchun tekshirish uchun regex yozishga harakat qilaman. Parol uzunligi kamida 8 ta belgidan iborat bo'lishi va quyidagi 4 ta belgidan kamida 3tasini o'z ichiga olishi kerak: kichik harflar (masalan ...


Parolni murakkab tekshirish uchun bitta regex

Parolni ushbu qoidalarga muvofiqligini tekshirish uchun ularni tekshirishim kerak A) Parolda quyidagi 4 ta sinfning 3 tasidan iborat belgilar bo'lishi kerak: inglizcha katta harflar A, B, C, ... Z Inglizcha kichik harflar ...


Regex parolida kamida 8 ta belgi, kamida 1 ta raqam, harflar va maxsus belgilar bo'lishi kerak

Menga kamida bitta raqamli belgi bo'lishi kerak bo'lgan regex kerak, ikkala katta va kichik harflarga ruxsat beriladi, maxsus belgilarga ham ruxsat beraman ...


Kamida 6 ta belgidan iborat parol uchun Regex

Quyidagi shartlar bilan parolni tasdiqlash uchun menga regex kerak Uzunlik kamida 6 ta belgi bo'lishi kerak kamida 1 ta harf bo'lishi kerak kamida 1 ta raqam bo'lishi kerak agar parolda maxsus ...


Naqsh goh mos tushar, goh mos kelmas edi

Parolni tekshirish uchun .ts faylida quyidagi kod bilan 5-burchakli shablonni amalga oshirdim. Buni qilish kerak - kamida sakkizta belgini qo'llab-quvvatlash, kamida bitta katta harf, bitta ...


parollar uchun regex kamida 8 ta belgi, katta, kichik, raqamlar, maxsus belgilar va takrorlanmaydigan?

Salom, men ushbu shartlarga javob beradigan doimiy iborani topmoqchiman. (1) parollar kamida 8 ta belgidan iborat bo'lishi kerak (2) unda kamida katta, kichik harflar, raqamlar va ... bo'lishi kerak.

263 Swapnil tatkondawar

Men buni tekshirishni xohlayman:

Parol kamida sakkizta belgini, shu jumladan kamida bitta raqamni o'z ichiga oladi va har ikkala katta va kichik harflarni va # ,? kabi maxsus belgilarni o'z ichiga oladi. ,! ...

Bu sizning eski parolingiz bo'lishi mumkin emas yoki foydalanuvchi nomi, "parol" yoki "veb-sayt nomi" bo'lishi mumkin

Mana mening tasdiqlash ifodam, bu sakkizta belgidan iborat, jumladan bitta katta harf, bitta kichik harf va bitta raqam yoki maxsus belgi.

(? \u003d ^. (8,) $) ((? \u003d. * \\ D) | (? \u003d. * \\ W +)) (?! [. \\ N]) (? \u003d. *) (? \u003d. * ). * $ "

Uni qanday yozish mumkin, parol sakkiz belgidan iborat bo'lishi kerak, shu jumladan bitta bosh harf, bitta maxsus belgi va alfanumerik belgilar?

javascript regex asp.net

24 javob

Kamida sakkizta belgi, kamida bitta harf va bitta raqam:

"^ (? \u003d. *) (? \u003d. * \\ d) (8,) $" "

Kamida sakkizta belgi, kamida bitta harf, bitta raqam va bitta maxsus belgi:

"^ (? \u003d. *) (? \u003d. * \\ d) (? \u003d. * [@ $!% * #? &]) $!%*#?&]{8,}$"

Kamida sakkizta belgi, kamida bitta katta harf, bitta kichik harf va bitta raqam:

"^ (? \u003d. *) (? \u003d. *) (? \u003d. * \\ d) (8,) $" "

Kamida sakkizta belgi, kamida bitta katta harf, bitta kichik harf, bitta raqam va bitta maxsus belgi:

$!%*?&]{8,}$"

Minimal sakkiz va maksimal 10 ta belgi, kamida bitta katta harf, bitta kichik harf, bitta raqam va bitta maxsus belgi:

"^ (? \u003d. *) (? \u003d. *) (? \u003d. * \\ d) (? \u003d. * [@ $!% *? &]) $!%*?&]{8,10}$"

Muntazam iboralarda AND operatori yo'q, shuning uchun haqiqat biron bir narsa VA boshqa bir narsa VA boshqa narsa bilan belgilanadigan bo'lsa, haqiqiy parollarga mos keladigan regex yozish juda qiyin ...

Ammo oddiy iboralarda OR operatori mavjud, shuning uchun faqat DeMorgan teoremasini qo'llang va yaroqsiz parollarga mos keladigan oddiy iborani yozing:

Sakkiz belgidan kam narsa Yoki hech narsa, raqamlar yo'q Yoki, katta harflar yo'q Yoki yoki kichik harfdan boshqa narsa yo'q Yoki maxsus belgilarga ega bo'lmagan har qanday narsa.

^ (. (0,7) | [^ 0-9] * | [^ A-Z] * | [^ a-z] * | *) $

Agar bunga mos keladigan narsa bo'lsa, unda bu noto'g'ri parol.

@ Anubhava javobiga biroz yaxshilanish: maxsus belgi faqat klaviaturada bo'lganlar uchun cheklanganligi sababli, uni har qanday maxsus belgi uchun ishlating:

^ (? \u003d. *?) (? \u003d (. *) (1,)) (? \u003d (. * [\\ D]) (1,)) (? \u003d (. * [\\ W]) (1,) )) (?!. * \\ s). (8,) $

Ushbu regex quyidagi qoidalarga amal qiladi:

  • Hech bo'lmaganda bitta yuqori harfli inglizcha harf
  • Eng kamida bitta inglizcha kichik harf
  • Kamida bitta raqam
  • Kamida bitta maxsus belgi
  • Uzunligi kamida sakkizta

Vaziyatimga eng mashhur javoblarni kuzatishda qiynaldim. Masalan, mening chekim quyidagi belgilar bilan ishlamadi; yoki [. Menga maxsus belgilarni oq ro'yxatga kiritish qiziq emas edi, shuning uchun men o'rniga [^ \\ w \\ s] ni so'zlarsiz (raqamli belgilar bilan) va bo'sh joysiz qo'yilgan belgilar bilan ishlatdim. Xulosa qilib aytganda, men uchun nima ishlagan ...

  • kamida 8 ta belgidan iborat
  • kamida 1 ta raqamli belgi
  • kamida 1 ta kichik harf
  • kamida bitta katta harf
  • kamida 1 ta maxsus belgi
/^(?\u003d.*?)(?\u003d.*?)(?\u003d.*?)(?\u003d.*? [^ \\ w \\ s\u003e). (8,) $ /

Men Piter Mortensenga javob bergan bo'lardim, ammo obro'-e'tiborni sog'inaman.

Uning ifodalari belgilangan minimal talablarning har biri uchun idealdir. Maxsus belgilarni talab qilmaydigan uning iboralari bilan bog'liq muammo shundaki, ular maxsus belgilarga Yo'l QO'YMAYDI, shuning uchun ular OP tomonidan so'ralmagan maksimal talabni bajaradilar. Odatda, siz foydalanuvchilaringiz parollarini xohlagancha kuchli qilishlarini xohlaysiz; Nima uchun kuchli parollarni cheklash kerak?

Shunday qilib, uning ifodasi "kamida sakkizta belgi, kamida bitta harf va bitta raqam":

^ (? \u003d. *) (? \u003d. * \\ d) (8,) $

minimal talabga erishildi, ammo boshqa belgilar faqat harflar va raqamlar bo'lishi mumkin. Maxsus belgilarga ruxsat berish (lekin kerak emas) uchun siz quyidagilarni ishlatishingiz kerak:

^ (? \u003d. *) (? \u003d. * \\ d). (8,) $ har qanday belgilarga ruxsat berish

^ (? \u003d \\ S *) (? \u003d \\ S *) (? \u003d \\ S * \\ d) (? \u003d \\ S * [^ \\ w \\ s]) \\ S (8,) $

lekin u _ (pastki chiziq) ni maxsus belgi sifatida qabul qilmaydi (masalan, Aa12345_).

Buni yaxshilandi:

^ (? \u003d \\ S *) (? \u003d \\ S *) (? \u003d \\ S * \\ d) (? \u003d \\ S * ([^ \\ w \\ s] | [_])) \\ S (8,) $

Quyidagi shartlarni bajarish uchun quyidagi doimiy ifodadan foydalaning:

Shartlar: 1] Min 1 maxsus belgi. 2] Min 1 raqam. 3] Min 8 belgi yoki undan ko'p
Maqola sizga yoqdimi? Do'stlar bilan bo'lishish uchun: