Проверете ја јачината на лозинката со JavaScript и редовни изрази

Проверете ја јачината на лозинката со JavaScript и редовни изрази

Правев истражување за наоѓање на добар пример за проверка на силата на лозинката што ја користи Го вклучите Javascript- Редовни изрази (Регекс). Во апликацијата за мојата работа, правиме порака за да ја потврдиме јачината на лозинката и тоа е доста незгодно за нашите корисници.

Што е Regex?

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

Овој напис дефинитивно не треба да ве научи на редовни изрази. Само знајте дека можноста да користите редовни изрази апсолутно ќе го поедностави вашиот развој додека пребарувате обрасци во текстот. Исто така е важно да се напомене дека повеќето јазици за развој имаат оптимизирана употреба на редовно изразување…, наместо да ги анализираат и пребаруваат низите чекор-по-чекор, Regex е обично многу побрз и од серверот и од страната на клиентот.

Пребарував по мрежата доста пред да најдам пример на некои одлични Редовни изрази што бараат комбинација од должина, знаци и симболи. Како и да е, кодот беше малку претеран за мојот вкус и прилагоден за .NET. Затоа, го поедноставив кодот и го ставив во JavaScript. Ова ја прави да ја потврди јачината на лозинката во реално време на прелистувачот на клиентот пред да ја објавите назад… и дава извесни повратни информации за корисникот за јачината на лозинката.

Внесете лозинка А.

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




Внесете лозинка

Еве го Кодексот

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

  • Повеќе карактери - Ако должината е под 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 почетник! Сакав да ја доловам пресудата за силата и да не дозволам формуларот да се објавува всушност да ја ажурира лозинката на корисникот, освен ако не го исполни тестот за јачина. Кодот на другите луѓе беше премногу комплициран или не функционираше правилно или нешто друго. Те сакам! XXXXX

  3. 4

    фала му на Бога за луѓето кои всушност можат правилно да напишат дел од кодот.
    Го имаше истото искуство како Џенис.

    Ова функционира веднаш, што е совршено за луѓе како мене кои не можат да кодираат Javascript!

  4. 5
  5. 6
  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 за намалување на спам. Научете како се обработува вашиот коментар.