JavaScript және тұрақты сөз тіркестерімен пароль күшін тексеріңіз

JavaScript және тұрақты сөз тіркестерімен пароль күшін тексеріңіз
Оқу уақыты: 2 минут

Мен қолданатын құпия сөздің беріктігін тексерушінің жақсы үлгісін іздестіру бойынша біраз зерттеулер жүргіздім 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 ішіндегі парольдің құрылысын тексеріп қана қоймаңыз. Бұл браузерді дамыту құралдары бар кез келген адамға сценарийді айналып өтіп, қалаған құпия сөзін қолдануға мүмкіндік береді. Сіз өзіңіздің платформаңызда сақтамас бұрын құпия сөздің сенімділігін тексеру үшін әрдайым серверлік тексеруді қолданғаныңыз жөн.

29 Пікірлер

  1. 1
  2. 2

    РАҚМЕТ СІЗГЕ! РАҚМЕТ СІЗГЕ! РАҚМЕТ СІЗГЕ! Мен 2 апта бойы басқа сайттардың пароль күшінің кодын алдап, шашымды жұлып алдым. Сіздікі қысқа, мен қалағандай жұмыс істейді және ең жақсысы, javascript жаңадан бастаушыға оңай өзгертіледі! Мен беріктік туралы шешімді қабылдағым келді және форма хабарламасында пайдаланушының паролін тексеруге сәйкес келмесе, оның паролін жаңартуға мүмкіндік бермедім. Басқа адамдардың коды тым күрделі болды немесе дұрыс жұмыс істемеді немесе басқасы. Мен сені жақсы көремін! ХХХХ

  3. 4

    кодты дұрыс жаза алатын адамдар үшін Құдайға шүкір.
    Жанис сияқты тәжірибе болған.

    Бұл javascript кодын ала алмайтын мен сияқты адамдарға өте ыңғайлы терезеден шығады!

  4. 5

    Консервіде айтылғандарды дәл орындайтын код бөлігін жазғаныңыз үшін рақмет!

  5. 6

    Сәлеметсіз бе, бәрінен бұрын көп күш салғаныңыз үшін алғыс айтамын, мен оны Asp.net-пен қолдануға тырыстым, бірақ жұмыс істемеді

    орнына тег, ал ол нәтиже бермеді, қандай да бір ұсыныстар ?!

  6. 7

    Nisreen үшін: бөлектелген қораптағы код кесілген пастамен жұмыс істемейді. Жалғыз дәйексөз бұзылған. Демонстрациялық сілтеменің коды жақсы.

  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

    біреу айта алады, неге бұл менің жұмысым болмады ..

    Мен барлық кодты көшірдім және оны блокнотқа ++ қойдым, бірақ ол мүлдем жұмыс істемейді?
    өтінемін маған көмектесіңіз..

  19. 20
  20. 21

    Керемет жұмыс! Қарапайым және тиімді. Бөліскеніңіз үшін көп рахмет!

  21. 22
  22. 23
  23. 24

    «Күшті тексергіштің» бұл түрі адамдарды өте қауіпті жолға түсіреді. Ол құпия фразаның ұзындығына қарағанда таңбалардың әртүрлілігін жоғары бағалайды, сондықтан қысқа, әр түрлі парольдерді ұзын, азырақ парольдерге қарағанда күшті етіп бағалауға мүмкіндік береді. Бұл сіздің қолданушыларыңызға күрделі хакерлік қауіп төніп тұрса, оларды қиындықтарға душар ететін жаңылыс.

    • 25

      Мен келіспеймін, Джордан! Мысал тек сценарийдің мысалы ретінде келтірілді. Адамдарға ұсынысым - кез-келген сайтқа ғана тән парольдерді құру үшін парольдерді басқару құралын пайдалану. Рахмет!

  24. 26
  25. 27
  26. 28

    Мен сізді осыдан бірнеше рет іздегеніме өте ризамын, бірақ мен сіздің постыңызды алдым және мен шынымен таңдандым. РАҚМЕТ СІЗГЕ

  27. 29

Сен не ойлайсың?

Бұл сайт спамның төмендеуі үшін Akismet пайдаланады. Деректеріңіздің қалай өңделетінін біліңіз.