Az adatok létfontosságú eszköz a mai digitális világban. Évente több mint nyolcmillió ember esik hackerek áldozatává, és naponta több mint 2200 kibertámadás történik. A számítástechnikai bûnözés ilyen riasztó aránya mellett elsõdlegessé válik a legjobb gyakorlatok alkalmazása a hackerek elleni védekezésben. Minden fiók egyik legfontosabb szempontja a jelszó.
Ha egy hacker feltöri jelszavát, néhány perc alatt hozzáférhet személyes adataihoz, sőt bankszámlájához is. Bár ez ijesztően hangzik, megtanulhatja, hogyan védheti meg jelszavait a bevált gyakorlatok segítségével, ha saját Python-programot készít, hogy ellenőrizze annak erősségét.
Az erős jelszavak beállításának eltérő szabályai
Néhány erős jelszószabály, amelyet érdemes lehet megvalósítani:
- A jelszónak legalább 12 karakter hosszúnak kell lennie. Minél hosszabb a jelszó, annál kisebb az esélye annak, hogy egy brute force támadás veszélyezteti azt.
- A jelszónak kisbetűk, nagybetűk, számok és speciális karakterek kombinációját kell tartalmaznia.
- Kerülje a karakterek ismétlődését a jelszóban.
- Nem tartalmazhat személyes adatokat, például neveket, telefonszámokat vagy bármi olyat, amit valaki könnyen kitalálhat.
- Ez nem lehet általános szótári szó, bár hosszabb jelszókifejezésekben is használhatsz szavakat.
- A jelszó nem lehet ugyanaz több fióknál. tudsz állítson be egy jelszókezelőt a különböző webhelyek különböző jelszavainak automatikus kitöltéséhez anélkül, hogy mindegyikre emlékezne.
Különböző módok vannak rá hozzon létre egy feltörhetetlen jelszót, amelyet megjegyezhet. Némelyikük mondókákat, filmekből vett idézeteket, ipari szóhasználatot és egyebeket használ.
Hogyan ellenőrizheti jelszavának erősségét Python használatával
A fenti jellemzők ellenőrzésével létrehozhat egy programot a jelszó erősségének tesztelésére. Ehhez az összeállításhoz két modulra lesz szüksége: húr és gyűjtemények.
Használhatja a getpass modult a jelszó elrejtéséhez, amikor a felhasználó beírja azt. Ez segít megvédeni jelszavát, amikor nyilvánosan kell beírnia. A getpass helyi környezetben való telepítéséhez nyisson meg egy terminált, és írja be:
csipog telepítés getpass4
A String osztály segítségével ellenőrizheti, hogy egy karakter betű, számjegy vagy szimbólum-e. Gyűjtemények segítségével ellenőrizheti, hogy vannak-e ismétlődő karakterek a jelszóban.
Használja a def kulcsszót egy nevű függvény meghatározásához check_password_strength() és adja át neki a kapott jelszót paraméterként.
Inicializáljon hat változót: alacsonyabb_alfa_szám, felső_alfa_szám, szám_szám, speciális_karakterszám, hossza, gyakori nullára. Ezek ellenőrzik a kisbetűs ábécé, a nagybetűs ábécé, a számjegyek, a speciális karakterek, a hossz, a karakterek ismétlődését a jelszóban.
Adja át a felhasználótól kapott jelszót a lista() függvényt karakterlistává alakítani. A for ciklus segítségével ismételje meg a lista minden karakterét. Használja az if-else utasítást annak ellenőrzésére, hogy a karakter kisbetűs ábécé, nagybetűs ábécé, szám vagy speciális karakter, és ennek megfelelően frissítse a számot.
Feltételezheti, hogy az ábécéből vagy a számból bármi más speciális karakter. A további korlátozások érdekében a speciális karaktereket karakterláncként tárolhatja, és ellenőrizheti, hogy benne van-e a jelszó karaktere. Ezenkívül egyes webhelyek lehetővé teszik szóközök használatát a jelszóban. Beállíthat egy másik változót, és növelheti, vagy magában a speciális karakterszámban is figyelembe veheti.
import húr
import gyűjteményekdefcheck_password_strength(Jelszó):
alsó_alfa_szám = felső_alfa_szám = szám_szám = speciális_karakterszám = hosszúság = gyakori = 0
számára beszenesedni lista(Jelszó):
hachar a string.ascii_lowercase:
alacsonyabb_alfa_szám += 1
elif char string.ascii_uppercase:
felső_alfa_szám += 1
elif char karakterláncban.számjegyek:
szám_szám += 1
más:
speciális_karakterszám += 1
Jelszólistára vagy adatbázisra lesz szüksége annak ellenőrzéséhez, hogy a felhasználó jelszava gyakori-e. Letöltheti az egymillió legnépszerűbb jelszót tartalmazó listát a webhelyről A SecLists Common-Credential GitHub tárháza.
Mentse el a szövegfájlt másként common_password_list.txt. Használja a with utasítást a kivételkezelés végrehajtásához, és olvasási módban nyissa meg a jelszófájlt. Használja a olvas() függvény segítségével lekérheti a fájlban jelenlévő tartalmat, és egy tartalom nevű változóban tárolja.
Ha a felhasználó által beírt jelszó nem szerepel a közös jelszavak listájában, növelje a közös változó értékét eggyel.
val velnyisd ki("common_password_list.txt", "r") mintfájlt:
tartalom = file.read()
ha a jelszó nincs a tartalomban:
közös += 1
A jelszó hosszának ellenőrzéséhez egyszerűen adja át a len() függvényt, és ellenőrizze, hogy nagyobb-e vagy egyenlő-e tizenkettővel. Ha igen, növelje a hosszváltozó értékét.
halen(Jelszó) >= 12:
hossza += 1
A jelszavakban szereplő karakterek ismétlődésének ellenőrzéséhez használja a Gyűjtemények Számláló alosztályát. A számláló kulcs és érték párok rendezetlen gyűjteménye, ahol a kulcs maga az elem, az érték pedig az elemek száma.
A listaértelmezési módszerrel listát készíthet a gyűjtemények segítségével kapott szótár ismétlődő karaktereiről. Iteráljon a szótárban, és ellenőrizze, hogy a karakterek száma nagyobb-e egynél. Ha a szám nagyobb, fűzze hozzá egy listához, és tárolja ismételten.
countOfWords = gyűjtemények. Számláló (jelszó)
ismételt = [i for i in countOfWords if countOfWords[i] > 1]
Most, hogy megvannak az egyedi jellemzők értékei, inicializáljon nullára egy erősség nevű változót. Ahogy a neve is sugallja, ezt a változót fogja látni a jelszó erősségének ellenőrzéséhez. A pontozási rendszer hétből áll, egy-egy pont minden egyes karakter beillesztéséért és egy erős jelszó jellemzőjéért.
Ellenőrizze, hogy a kisbetűs ábécé, a nagybetűs ábécé, a számok és a speciális karakterek száma nagyobb-e vagy egyenlő, mint egy, és minden jelenlétnél növelje eggyel az erősséget. Hasonlóképpen ellenőrizze, hogy a hossza és a közös változó egyenlő-e eggyel, és hogy az ismétlődő karakter hossza nulla-e. Ha igaz, növelje az erősségi változó értékét.
erő = 0
ha alacsonyabb_alfa_szám >= 1:
erősség += 1ha felső_alfa_szám >= 1:
erősség += 1ha szám_szám >= 1:
erősség += 1if special_char_count >= 1:
erősség += 1ha hossza == 1:
erősség += 1ha gyakori == 1:
erősség += 1
halen(megismételt)== 0:
erősség += 1
A többsoros karakterlánc (három idézőjel) segítségével több sornyi szöveget jeleníthet meg egyetlen nyomtatási utasításban. A karakterisztikák számának megjelenítéséhez használja a szó szerinti Sring-interpolációt vagy az f-sztringeket vagy. Ezt írással érheted el f a karakterlánc elejére a print utasításban, és tegye a változókat zárójelbe. Karakterlánc-interpolációt használ, mivel a print utasításon belüli tartalom egy karakterlánc, de a változók értéke egész szám.
nyomtatás(f"""A jelszavad a következőket tartalmazza:
{lower_alpha_count} kisbetű
{upper_alpha_count} nagybetű
{number_count} számjegy
{special_char_count} speciális karakter
{length} hossza
{common} gyakori
{ismételt} ismételte
"Jelszó pontszáma: {strength}/7""")
Végül használja az input utasítást, hogy megkapja a jelszót a felhasználótól, és továbbítsa azt a check_password_strength funkció. A jelszó erőssége alapján a program megjeleníti a pontszámot a jelszóban található jellemzők számával együtt.
jelszó = input("Írja be a jelszót:")
check_password_strength (jelszó)
Jelszóerősség-ellenőrző kimenete
Ha az említett jellemzők alapján erős jelszót ad meg, a Python program 7/7-ként jeleníti meg az erősséget:
Gyenge és gyakori jelszó megadásakor a Python program az erősséget 1/7-ként jeleníti meg:
Jelszavak és biztonság
Bár Ön a valaha volt legerősebb jelszót állíthatja be, más módon is betörhet a hacker a rendszerébe. A kibertámadások 95%-a emberi mulasztás eredménye. A hackerek által használt egyik leggyakoribb módszer a social engineering. A hacker hamis linkeket küldhet Önnek közösségi médiára vagy e-kereskedelmi webhelyekre, amelyek jogosnak tűnnek, de használata során veszélyeztetik jelszavát.
Az ezekkel a technikákkal szembeni védelem érdekében ügyeljen arra, hogy csak megbízható forrásból származó hivatkozásokat nyisson meg, és csak fontos információkat írjon be vagy tároljon biztonságosan.