Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy
počítačové znalosti >> otázka >> hesla >> .

Heslo by malo byť alfanumerické s jedným špeciálnym znakom s minimálnou dĺžkou 8 znakov?

`` regex

^(?

`` `

Vysvetlenie:

* `^`:Zhoduje sa so začiatkom reťazca.

* `(? =.* [a-za-z])`:Pozitívne tvrdenie Lookahead, ktoré vyžaduje aspoň jedno písmeno (A-Z alebo A-Z).

* `(? =.* \ d)`:Pozitívne tvrdenie, ktoré vyžaduje aspoň jednu číslicu (0-9).

*`(? =.*[!@$%^&*(),.?":{} | <> \ -_+=\\ «~; '])`:Kladné tvrdenie Lookahead, ktoré vyžaduje aspoň jeden špeciálny znak. Toto je kritická časť, a mali by ste upraviť znaky v rámci Square Brackets "[...]", aby si porovnali presnú sadu špeciálnych znakov, ktoré chcete, aby umožnili, aby umožňovali akcie. " Uniknite špeciálnym znakom v triede znakov (napr.

* `. {8,}`:Zhoduje sa s ľubovoľným znakom (okrem novej linky) najmenej 8 -krát. To zaisťuje minimálnu dĺžku.

* `$`:Zhoduje sa s koncom reťazca.

Ako ho používať v rôznych kontextoch:

* JavaScript:

`` `JavaScript

Const PasswordRegex =/^(?=.*[a-za-z+ :)=.*\d)(?=.*..@#$%^&*(),??

const heslo ="myp@sSword123";

const isvalid =hesloRegex.Test (heslo);

Console.log (isvalid); // výstup:true

const invalidPassword ="Short1!";

const isinValid =hesloRegex.Test (invalidPassword);

Console.log (IsinValid); // výstup:false

`` `

* python:

`` `Python

importovať

heslo_regex =r "^(? =.*[a-si-z]) (? =.*\ d) (? =.*[!@#$%^&*(),.? \":{} | <> \ -_+=\\ `~; ']). {8,} $"

heslo ="myp@sSword123"

is_Valid =re.match (heslo_regex, heslo)

tlač (bool (is_valid)) # výstup:true

invalid_password ="Short1!"

is_invalid =re.match (heslo_regex, invalid_password)

tlač (bool (is_invalid)) # výstup:false

`` `

* java:

`` `Java

import java.util.regex.matcher;

import java.util.regex.pattern;

public class PasswordValidator {

public static void main (String [] args) {

String PasswordRegex ="^(? =.*[A-za-z]) (? =.*\\ d) (? =.*[!@$%^&*(),.? \":{} | <> -_+=\\ \ ~; ']). {8,} $ ";

String heslo ="myp@sSword123";

Vzor vzor =vzorc.compile (PasswordRegex);

Matcher Matcher =Pattern.matcher (heslo);

System.out.println (matcher.matches ()); // výstup:true

String invalidPassword ="Short1!";

matcher =vzorc.matcher (invalidPassword);

System.out.println (matcher.matches ()); // výstup:false

}

}

`` `

Dôležité úvahy a prispôsobenie:

* Špeciálne znaky: Najdôležitejšou časťou je definovanie povolených špeciálnych znakov. `[!@#$%^&*(),.?":{} | <> \ -_+=\\ `~; ']` Časť regexu definuje, ktoré znaky sa považujú za „špeciálne“. Opatrne to preskúmajte a upravte tak, aby zodpovedali vašim špecifickým požiadavkám. Nezabudnite uniknúť špeciálnym regexovým znakom.

* Sady znakov:

* `[a-za-z]`:Zhoduje sa s akýmikoľvek veľkými alebo malými písmenami. Možno budete chcieť obmedziť to iba na malé písmená alebo iba v prípade potreby veľké písmená.

* `\ d`:Zhoduje sa s akoukoľvek číslicou (0-9).

* Minimálna dĺžka: Časť `{8,}` určuje minimálnu dĺžku 8 znakov. Zmeňte `8`, aby ste upravili minimálnu dĺžku. Ak chcete aj maximálnu dĺžku, môžete ju určiť takto:`{8,16}` pre minimálne 8 a maximálne 16 znakov.

* Požiadavky na zložitosť: Ďalšie požiadavky na zložitosť môžete pridať pridaním ďalších tvrdení Lookahead. Napríklad by ste mohli vyžadovať najmenej dve číslice s `(? =.*\ D.*? \ D)`.

* Zabezpečenie osvedčených postupov: Aj keď tento regex presadzuje základnú úroveň zložitosti, je nevyhnutné pochopiť, že samotný Regex nie je úplným bezpečnostným riešením. Zvážte tieto osvedčené postupy:

* soľ a hash: Nikdy neukladajte heslá do obyčajného textu. Pre každé heslo používajte vždy silný algoritmus hashovania (napríklad Argon2, Bcrypt alebo Scrypt) s jedinečnou soľou.

* Meračy sily hesla: Použite merač sily hesla na poskytnutie spätnej väzby v reálnom čase používateľom pri písaní svojho hesla.

* Pravidelné bezpečnostné audity: Pravidelne kontrolujte svoje zásady hesla a bezpečnostné postupy.

* Obmedzenie rýchlosti: Implementujte obmedzenie sadzieb pri pokusoch o prihlásenie na zabránenie útokov na brutálnu silu.

Príklad:Povolenie iba nasledujúcich špeciálnych znakov:`!@#$%^&*`

Regex by sa stal:

`` regex

^(? =.*[a-za-z]) (? =.*\ d) (? =.*[!@#$%^&*]). {8,} $

`` `

Príklad:Vyžadovanie najmenej dve číslice:

`` regex

^)

`` `

Táto verzia pridáva `(? =.*\ D.*? \ D)`, ktorá vyžaduje najmenej dve číslice, s akýmikoľvek znakmi, ktoré sú povolené `.*?"

Vyberte regex, ktorý sa najlepšie hodí * Vaša * konkrétna politika hesla, a nezabudnite uprednostňovať osvedčené postupy zabezpečenia. Regex vždy dôkladne otestujte s rôznymi platnými a neplatnými heslami.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené