Нова технологијаМаркетинг путем е-поште и аутоматизација маркетинга путем е-поште

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

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

Шта је Регек?

Регуларни израз је низ знакова који дефинишу образац претраживања. Обично такве обрасце користе алгоритми претраживања низова за наћи 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>

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

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

Douglas Karr

Douglas Karr је оснивач Martech Zone и признати стручњак за дигиталну трансформацију. Доуг је Уводник и маркетиншки јавни говорник. Он је потпредседник и суоснивач Highbridge, фирма специјализована за помоћ предузећима у дигиталној трансформацији и максимизирању њихових технолошких улагања користећи Салесфорце технологије. Развио је стратегије дигиталног маркетинга и производа за Делл Тецхнологиес, ГоДадди, Салесфорце, Вебтрендс, и СмартФОЦУС. Доуглас је такође аутор Корпоративно блогање за лутке и ко-аутор Боља пословна књига.

Komentari

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

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

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

  3. За Нисреен: код у означеном пољу не ради са цут'н'пасте. Једноструки наводник је збркан. Међутим, код демонстрационе везе је у реду.

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

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

  6. може ли неко рећи зашто мени није успело..

    копирао сам сав код и налепио га у нотепад++, али уопште не ради?
    молим вас помозите ми..

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

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

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

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

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

Повезани чланци