Нууц үгийн бат бөх чанарыг JavaScript болон тогтмол илэрхийллээр шалгана уу

Нууц үгийн бат бөх чанарыг JavaScript болон тогтмол илэрхийллээр шалгана уу

Нууц үгийн хүч чадал шалгагчийг ашигладаг жишээг олох талаар судалгаа хийж байсан JavaScript болон Тогтмол илэрхийлэл (Regex). Миний ажилд байгаа аппликешнд бид нууц үгийн хүчийг баталгаажуулахын тулд буцааж бичлэг хийдэг бөгөөд энэ нь хэрэглэгчиддээ тохиромжгүй байдаг.

Режекс гэж юу вэ?

Тогтмол илэрхийлэл бол хайлтын хэв маягийг тодорхойлдог тэмдэгтүүдийн дараалал юм. Ихэнхдээ ийм загварыг мөр хайх алгоритмаар ашигладаг олох or олох, солих мөрүүд эсвэл оролтыг баталгаажуулах үйлдлүүд. 

Энэ нийтлэл нь танд тогтмол хэллэг заахгүй нь дамжиггүй. Текстийн хэв маягийг хайж байхдаа ердийн илэрхийлэл ашиглах чадвар нь таны хөгжлийг туйлын хялбаршуулах болно гэдгийг л мэдэж аваарай. Ихэнх хөгжүүлэлтийн хэл нь экспрессын тогтмол хэрэглээг оновчтой болгосон гэдгийг тэмдэглэх нь чухал юм ... Тиймээс мөрүүдийг алхам алхамаар задлан хайхаас илүүтэйгээр Regex нь сервер болон үйлчлүүлэгчдийн аль алинд нь илүү хурдан ажилладаг.

Би олдохоосоо өмнө нэтээс бага зэрэг хайсан жишээ Урт, тэмдэгт, тэмдгийн хослолыг хайж олох гайхалтай тогтмол илэрхийллүүдийн нэг. Гэсэн хэдий ч код нь миний амтанд бага зэрэг хэтэрч, .NET-д тохирсон байсан. Тиймээс би кодыг хялбаршуулж, JavaScript дээр суулгасан. Энэ нь нууц үгийн хүчийг буцааж байршуулахаас өмнө үйлчлүүлэгчийн хөтөч дээр бодит цаг хугацаанд баталгаажуулж, хэрэглэгчид нууц үгийн хүч чадлын талаар зарим санал хүсэлтийг өгдөг.

Нууц үгээ оруулна уу

Гарны цохилт бүрт нууц үгийг ердийн илэрхийллийн дагуу шалгаж, дараа нь хэрэглэгчдэд хариу өгөх болно.




Нууц үгээ оруулна уу

Энд код байна

The Тогтмол илэрхийлэл кодын уртыг багасгах гайхалтай ажил хий:

  • Бусад дүрүүд - Хэрэв урт нь 8 тэмдэгтээс бага байвал.
  • Сул - Хэрэв урт нь 10 тэмдэгтээс бага байвал тэмдэг, толгой, текстийн хослол агуулаагүй бол.
  • Дунд - Хэрэв урт нь 10 ба түүнээс дээш тэмдэгт байвал тэмдэг, толгой, текстийн хослолтой байна.
  • Хүчтэй - Хэрэв урт нь 14 ба түүнээс дээш тэмдэгт байвал тэмдэг, том үсэг, текстийн хослолтой байна.

<script language="javascript">
    function passwordChanged() {
        var strength = document.getElementById('strength');
        var strongRegex = new RegExp("^(?=.{14,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
        var mediumRegex = new RegExp("^(?=.{10,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
        var enoughRegex = new RegExp("(?=.{8,}).*", "g");
        var pwd = document.getElementById("password");
        if (pwd.value.length == 0) {
            strength.innerHTML = 'Type Password';
        } else if (false == enoughRegex.test(pwd.value)) {
            strength.innerHTML = 'More Characters';
        } else if (strongRegex.test(pwd.value)) {
            strength.innerHTML = '<span style="color:green">Strong!</span>';
        } else if (mediumRegex.test(pwd.value)) {
            strength.innerHTML = '<span style="color:orange">Medium!</span>';
        } else {
            strength.innerHTML = '<span style="color:red">Weak!</span>';
        }
    }
</script>
<input name="password" id="password" type="text" size="15" maxlength="100" onkeyup="return passwordChanged();" />
<span id="strength">Type Password</span>

Нууц үгийнхээ хүсэлтийг хатууруулах

Та зөвхөн Javascript дотор нууц үгийн бүтцийг баталгаажуулахгүй байх нь чухал юм. Энэ нь хөтөч боловсруулах хэрэгсэлтэй хүмүүст скриптийг тойрч гарах, хүссэн нууц үгээ ашиглах боломжийг олгоно. Та платформдоо хадгалахаасаа өмнө нууц үгийн хүчийг баталгаажуулахын тулд үргэлж сервер талын шалгалтыг ашиглах хэрэгтэй.

34 санал

  1. 1
  2. 2

    БАЯРЛАЛАА! БАЯРЛАЛАА! БАЯРЛАЛАА! Би бусад вэбсайтуудын хараал идсэн нууц үгийн кодыг ашиглан 2 долоо хоногийн турш хууран мэхэлж, үсээ зулгааж байна. Таных богино, миний хүссэнээр ажилладаг, хамгийн сайн нь javascript шинэхэн хүн өөрчлөхөд хялбар! Би хүч чадлын талаархи шийдвэрийг авахыг хүсч, хүч чадлын тестийг хангаагүй тохиолдолд хэрэглэгчийн нууц үгийг бодитоор шинэчлэхийн тулд маягтын бичлэгийг зөвшөөрөхгүй байхыг хүссэн. Бусдын код хэтэрхий төвөгтэй байсан эсвэл зөв ажиллахгүй байсан эсвэл өөр зүйл байсан. Би чамд хайртай! ХХХХ

  3. 4

    кодыг үнэн зөв бичиж чаддаг хүмүүст бурханд талархаж байна.
    Жанистай адил туршлагатай байсан.

    Энэ нь javascript-ийг кодчилдоггүй над шиг хүмүүст тохиромжтой хайрцагнаас шууд гарч ирдэг!

  4. 5
  5. 6

    Сайн уу, юуны түрүүнд хүчин чармайлт гаргасанд маш их баярлалаа, би үүнийг Asp.net-тэй ашиглахыг хичээсэн боловч ажиллахгүй байна, би ашиглаж байна

    оронд нь шошго, гэхдээ энэ нь ажиллахгүй байна, ямар ч санал байна уу ?!

  6. 7
  7. 8

    Хөөе, чиний зохиол надад таалагдаж байна! Би үүнийг голланд хэл рүү хөрвүүлж, форум дээрээ энд байрлуулсан!

  8. 9
  9. 10
  10. 11

    “P @ s $ w0rD” нь хүчтэй харагдаж байна, гэхдээ толь бичгийн довтолгооноор нэлээд хурдан хагарах болно ...
    Ийм шинж чанарыг мэргэжлийн шийдэлд ашиглахын тулд энэ алгоритмыг толь бичгийн шалгалттай хослуулах нь чухал гэж би үзэж байна.

  11. 12
  12. 13
  13. 14
  14. 15
  15. 16
  16. 17

    Маш энгийн бөгөөд гайхалтай илэрхийлэл. Би шалгагч хүний ​​хувьд энэ илэрхийллээс ТС-уудээ гаргаж авсан.

  17. 18
  18. 19

    яагаад минийх ажиллаагүй юм гэж хэн нэгэн хэлж чадах уу?

    би бүх кодыг хуулж аваад notepad ++ дээр буулгасан боловч огт ажиллахгүй байна уу?
    надад туслаач..

  19. 20
  20. 21
  21. 22
  22. 23
  23. 24

    Энэ төрлийн "хүч шалгагч" нь хүмүүсийг маш аюултай зам руу хөтөлдөг. Энэ нь нэвтрэх үгийн уртаас илүү зан чанарын олон янз байдлыг үнэлдэг тул богино, илүү олон төрлийн нууц үгийг урт, бага нууц үгээс илүү хүчтэй гэж үнэлдэг. Энэ нь таны хэрэглэгчид хэзээ нэгэн цагт хакердах ноцтой аюул заналхийлэлд өртвөл асуудалд орох болно.

    • 25

      Би санал зөрж байна, Жордан! Жишээг зүгээр л скриптийн жишээ болгон гаргав. Хүмүүст өгөх зөвлөмж бол аливаа сайтад өвөрмөц, нэвтрэх үг хэллэг үүсгэх нууц үгийн менежментийн хэрэгслийг ашиглах явдал юм. Баярлалаа!

  24. 26
  25. 27
  26. 28
  27. 29

    Баярлалаа ханиа. Зүгээр л миний вэбсайт дээр байрлуулсан бөгөөд энэ нь маш сайн ажиллаж байна.

  28. 31

    Таныг хуваалцаж байгаад талархаж байна! Манай вэбсайт дахь нууц үгийн хүчийг сайжруулахыг хүсч байсан бөгөөд энэ нь миний хүссэнээр ажилласан. Маш их баярлалаа!

  29. 33

    Та бол амьд хадгалагч юм! Би баруун, зүүн талын мөрүүдийг задлан шинжилж байгаад илүү сайн арга байна гэж бодоод Regex ашиглан таны кодыг оллоо. Миний сайтад зориулж үүнийг ашиглаж чадсан уу ... Энэ нь хичнээн их тус болсныг та огт мэдэхгүй байна. Маш их баярлалаа Дуглас !!

Чи юу гэж бодож байна?

Энэ сайт нь спамыг багасгахын тулд Akismet-ийг ашигладаг. Таны өгөгдлийг хэрхэн боловсруулдаг талаар суралц.