Проверите снагу лозинке помоћу ЈаваСцрипт-а и регуларних израза

Проверите снагу лозинке помоћу ЈаваСцрипт-а и регуларних израза

Радио сам неко истраживање како бих пронашао добар пример програма за проверу снаге лозинке који користи ЈаваСцрипт Регуларни изрази (Регек). У апликацији на мом послу враћамо пост како бисмо верификовали снагу лозинке и прилично је незгодно за наше кориснике.

Шта је Регек?

Регуларни израз је низ знакова који дефинишу образац претраживања. Обично такве обрасце користе алгоритми претраживања низова за наћи or Нађи и премести операције на стринговима или за проверу улазних података. 

Овај чланак дефинитивно не жели да вас научи регуларним изразима. Само знајте да ће могућност употребе регуларних израза апсолутно поједноставити ваш развој док тражите узорке у тексту. Такође је важно напоменути да је већина развојних језика оптимизовала употребу регуларних израза ... па, уместо да рашчлањује и претражује низове корак по корак, Регек је обично много бржи и на серверу и на страни клијента.

Прилично сам претраживао мрежу пре него што сам пронашао пример неких сјајних Регуларних израза који траже комбинацију дужине, знакова и симбола. Ипак, код је за мој укус био мало претеран и прилагођен за .НЕТ. Зато сам поједноставио код и ставио га у ЈаваСцрипт. То га чини ваљаним у лозинци у реалном времену у клијентовом прегледачу пре него што га поново пошаље ... и пружа неке повратне информације кориснику о снази лозинке.

Унесите лозинку

Са сваким потезом тастатуре, лозинка се тестира у односу на регуларни израз, а затим се кориснику пружа повратна информација у распону испод ње.




Унесите лозинку

Ево кода

Регуларни изрази урадите фантастичан посао смањивања дужине кода:

  • Још ликова - Ако је дужина мања од 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>

Утврђивање захтева за лозинком

Неопходно је да не само потврдите конструкцију лозинке у свом Јавасцрипту. То би омогућило свима који имају алате за развој прегледача да заобиђу скрипту и користе било коју лозинку коју желе. Увек бисте требали користити проверу на страни сервера за потврду снаге лозинке пре него што је сачувате на својој платформи.

Komentari

  1. 1
  2. 2

    ХВАЛА ВАМ! ХВАЛА ВАМ! ХВАЛА ВАМ! Две недеље се зезам са вражјим кодом снаге лозинке са других веб локација и чупам косу. Ваш је кратак, ради баш онако како ја желим, и што је најбоље од свега, једноставан за јавасцрипт почетнике да га измени! Желео сам да снимим пресуду о снази и да не допустим да образац заиста ажурира корисничку лозинку уколико не задовољи тест снаге. Код других људи је био превише сложен или није радио како треба или нешто треће. Волим те! КСКСКСКСКС

  3. 4

    хвала богу за људе који заиста могу правилно да напишу део кода.
    Имао исто искуство као Јанис.

    Ово делује одмах из кутије, што је савршено за људе попут мене који не могу да кодирају јавасцрипт!

  4. 5
  5. 6

    Здраво, пре свега пуно хвала на вашим напорима, покушао сам да користим ово са Асп.нет, али није успело, користим

    уместо ознаке, а није успело, било каквих предлога ?!

  6. 7

    За Нисреен: код у истакнутом пољу не ради са цут'н'пасте. Појединачни цитат је збркан. Код демонстрацијске везе је у реду.

  7. 8
  8. 9
  9. 10
  10. 11

    „П @ с $ в0рД“ се показује снажно, мада би прилично брзо био пукнут речничким нападом ...
    Да би се таква карактеристика применила на професионалном решењу, верујем да је важно комбиновати овај алгоритам са провером речника.

  11. 12
  12. 13

    Хвала на овом малом коду, сада га могу користити за тестирање снаге лозинке када моји посетиоци .унесе своје лозинке,

  13. 14
  14. 15
  15. 16
  16. 17
  17. 18
  18. 19
  19. 20
  20. 21
  21. 22
  22. 23
  23. 24

    Ова врста „провере снаге“ води људе врло опасним путем. Уважава разноликост карактера у дужини приступне фразе, што доводи до тога да краће, разноврсније лозинке оцењује као јаче од дужих, мање разноликих лозинки. То је заблуда која ће довести ваше кориснике у проблеме ако се икада суоче са озбиљном претњом хаковањем.

    • 25

      Не слажем се, Јордан! Пример је једноставно представљен као пример скрипте. Моја препорука људима је да помоћу алата за управљање лозинком креирају независне приступне фразе за било коју јединствену веб локацију. Хвала!

  24. 26
  25. 27
  26. 28

    Заиста сам захвалан што сте претражени много пута, али на крају сам добио ваш пост и заиста сам запањен. ХВАЛА ВАМ

  27. 29
  28. 31
  29. 33

    Ви сте живи штедиша! Рашчлањивао сам жице лево десно и по средини и мислио да постоји бољи начин и пронашао сам ваш део кода помоћу Регек-а. Могао сам да се зајебавам са тим за моју веб локацију ... Немате појма колико је ово помогло. Пуно хвала Доуглас !!

Шта ви мислите?

Ова страница користи Акисмет како би смањила нежељену пошту. Сазнајте како се ваш коментар обрађује.