Kaltaisesi lukijat auttavat tukemaan MUO: ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

Data on tärkeä voimavara nykypäivän digitaalisessa maailmassa. Yli kahdeksan miljoonaa ihmistä joutuu hakkereiden uhriksi joka vuosi ja yli 2200 kyberhyökkäystä tapahtuu päivittäin. Tietoverkkorikollisuuden hälyttävän määrän vuoksi on ensisijaisen tärkeää käyttää parhaita käytäntöjä suojautuakseen hakkereilta. Yksi minkä tahansa tilin tärkeimmistä ominaisuuksista on sen salasana.

Jos hakkeri vaarantaa salasanasi, hän pääsee käsiksi henkilötietoihisi ja jopa pankkitilillesi muutamassa minuutissa. Vaikka tämä kuulostaa pelottavalta, voit oppia suojaamaan salasanasi parhaiden käytäntöjen avulla rakentamalla oman Python-ohjelman tarkistaaksesi sen vahvuuden.

Erilaiset säännöt vahvojen salasanojen asettamiseen

Joitakin vahvoja salasanasääntöjä, joita sinun kannattaa harkita, ovat:

  1. Salasanan tulee olla vähintään 12 merkkiä pitkä. Mitä pidempi salasana, sitä vähemmän on mahdollista, että raa'an voiman hyökkäys vaarantaa sen.
  2. instagram viewer
  3. Salasanan tulee sisältää yhdistelmä pieniä kirjaimia, isoja kirjaimia, numeroita ja erikoismerkkejä.
  4. Vältä toistamasta merkkejä salasanassa.
  5. Se ei saa sisältää henkilökohtaisia ​​tietoja, kuten nimiä, puhelinnumeroita tai mitään, jonka joku voi helposti arvata.
  6. Sen ei pitäisi olla yleinen sanakirjasana, vaikka voit käyttää sanoja pidemmissä salasanalausekkeissa.
  7. Salasana ei saa olla sama useille tileille. Sinä pystyt määritä salasananhallinta täyttää automaattisesti eri salasanoja eri sivustoille muistamatta niitä jokaista.

On olemassa erilaisia ​​tapoja Luo rikkoutumaton salasana, jonka voit muistaa. Jotkut heistä käyttävät lasten loruja, lainauksia elokuvista, alan kielenkäyttöä ja paljon muuta.

Kuinka tarkistaa salasanasi vahvuus Pythonilla

Voit rakentaa ohjelman salasanan vahvuuden testaamiseksi tarkistamalla yllä olevat ominaisuudet. Tätä rakennelmaa varten tarvitset kaksi moduulia: merkkijono ja kokoelmat.

Voit myös käyttää getpass moduuli piilottaa salasanan, kun käyttäjä antaa sen. Tämä auttaa suojaamaan salasanaasi, kun sinun on kirjoitettava se julkisesti. Asenna getpass paikalliseen ympäristöösi avaamalla pääte ja kirjoittamalla:

pip Asentaa getpass4

String-luokan avulla voit tarkistaa, onko merkki kirjain, numero vai symboli. Voit käyttää kokoelmia tarkistaaksesi, onko salasanassa toistuvia merkkejä.

Käytä def-avainsanaa määrittääksesi funktion nimeltä check_password_strength() ja anna sille parametrina saamasi salasana.

Alusta kuusi muuttujaa: alempi_alfa_määrä, ylempi_alfa_määrä, numero_määrä, erikoismerkkien_määrä, pituus, yleinen nollaan. Nämä tarkistavat pienten kirjainten, isojen aakkosten, numeroiden, erikoismerkkien, pituuden ja merkkien toistumisen salasanassa.

Välitä käyttäjältä saamasi salasana käyttäjälle lista() toiminto muuntaa sen merkkiluetteloksi. Käytä for-silmukkaa, toista luettelon jokainen merkki. Käytä if-else-käskyä tarkistaaksesi, onko merkki pieniä kirjaimia, isoja aakkosia, numeroita vai erikoismerkkejä, ja päivittää luku vastaavasti.

Voit olettaa, että mikä tahansa muu aakkosesta tai numerosta on erikoismerkki. Lisärajoituksia varten voit tallentaa erikoismerkit merkkijonona ja tarkistaa, onko salasanan merkki siinä. Lisäksi joillakin verkkosivustoilla voit käyttää välilyöntejä salasanassa. Voit asettaa eri muuttujan ja kasvattaa sitä tai ottaa sen huomioon itse erikoismerkkien määrässä.

tuonti merkkijono
tuonti kokoelmat

defcheck_password_strength(Salasana):
alempi_alfa_määrä = ylempi_alfa_määrä = lukumäärä = erityinen_merkkien_määrä = pituus = yleinen = 0

varten hiiltyä sisään lista(Salasana):
joshiiltyä in string.ascii_lowercase:
alempi_alfa_luku += 1
elif hiiltyä in string.ascii_uppercase:
ylempi_alfa_luku += 1
elif hiiltyä merkkijonossa.numerot:
numero_määrä += 1
muu:
erikoismerkkien_määrä += 1

Tarvitset salasanaluettelon tai tietokannan tarkistaaksesi, onko käyttäjän salasana yleinen. Voit ladata miljoonan suosituimman salasanan luettelon osoitteesta SecListsin Common-Credential GitHub-arkisto.

Tallenna tekstitiedosto nimellä common_password_list.txt. Käytä with-käskyä poikkeuksien käsittelyyn ja avaa salasanatiedosto lukutilassa. Käytä lukea() -toimintoa saadaksesi tiedostossa olevan sisällön ja tallentaa sen muuttujaan nimeltä sisältö.

Jos käyttäjän antama salasana ei ole yleisessä salasanaluettelossa, lisää yhteisen muuttujan arvoa yhdellä.

kanssaavata("common_password_list.txt", 'r') kutentiedosto:
sisältö = tiedosto.lue()

jos salasana ei ole sisällössä:
yleinen += 1

Voit tarkistaa salasanan pituuden välittämällä sen osoitteeseen len() funktio ja tarkista, onko se suurempi tai yhtä suuri kuin kaksitoista. Jos näin on, lisää pituusmuuttujan arvoa.

joslen(Salasana) >= 12:
pituus += 1

Tarkistaaksesi merkkien toistumisen salasanassa, käytä Kokoelmien Laskuri-alaluokkaa. Laskuri on avain- ja arvoparien järjestämätön kokoelma, jossa avain on itse elementti ja arvo on elementtien lukumäärä.

Käytä luettelon ymmärtämismenetelmää luodaksesi luettelon toistuvista merkeistä sanakirjasta, jonka saat kokoelmien avulla. Toista sanakirjaa ja tarkista, onko merkkien määrä suurempi kuin yksi. Jos luku on suurempi, lisää se luetteloon ja tallenna se toistuvaan.

 countOfWords = kokoelmat. Laskuri (salasana)
toistuva = [i for i in countOfWords, jos countOfWords[i] > 1]

Nyt kun sinulla on yksittäisten ominaisuuksien arvot, alusta vahvuus-niminen muuttuja nollaan. Kuten nimestä voi päätellä, näet tämän muuttujan tarkistaaksesi salasanan vahvuuden. Pisteytysjärjestelmä on seitsemästä, yksi piste jokaisesta merkin sisällyttämisestä ja vahvan salasanan ominaisuus.

Tarkista, onko pienten kirjainten, isojen aakkosten, numeroiden ja erikoismerkkien määrä suurempi tai yhtä suuri kuin yksi, ja lisää kunkin läsnäolon voimakkuutta yhdellä. Tarkista vastaavasti, ovatko pituus ja yhteinen muuttuja yhtä ja onko toistuvan merkin pituus nolla. Jos tosi, lisää vahvuusmuuttujan arvoa.

 vahvuus = 0

jos alempi_alfa_luku >= 1:
vahvuus += 1

jos ylempi_alpha_count >= 1:
vahvuus += 1

jos lukumäärä >= 1:
vahvuus += 1

if special_char_count >= 1:
vahvuus += 1

jos pituus == 1:
vahvuus += 1

jos yleinen == 1:
vahvuus += 1

joslen(toistettu)== 0:
vahvuus += 1

Käytä monirivistä merkkijonoa (kolme lainausmerkkiä) näyttääksesi useita tekstirivejä yhdessä tulostuslauseessa. Käytä kirjaimellista Sring-interpolaatiota tai f-merkkijonoja tai näyttääksesi ominaisuuksien lukumäärän. Voit saavuttaa tämän kirjoittamalla f merkkijonon alkuun print-käskyssä ja sisällytä muuttujat kaareviin hakasulkeisiin. Käytät merkkijonointerpolaatiota, koska print-käskyn sisältö on merkkijono, mutta muuttujien arvot ovat kokonaislukuja.

Tulosta(f"""Salasanasi sisältää: 
{lower_alpha_count} pientä kirjainta
{upper_alpha_count} isoa kirjainta
{number_count} numeroa
{special_char_count} erikoismerkkiä
{length} pituus
{yleinen} yleistä
{toistettu} toisti
"Salasanapisteet: {strength}/7""")

Käytä lopuksi syöttölausetta saadaksesi salasana käyttäjältä ja välitä se käyttäjälle check_password_strength toiminto. Salasanan vahvuuden perusteella ohjelma näyttää pisteet sekä salasanassa olevien ominaisuuksien lukumäärän.

salasana = input("Anna salasana:")
check_password_strength (salasana)

Salasanan vahvuuden tarkistuksen tulos

Kun syötät vahvan salasanan mainittujen ominaisuuksien perusteella, Python-ohjelma näyttää vahvuuden muodossa 7/7:

Kun syötetään heikko ja yleinen salasana, Python-ohjelma näyttää vahvuuden muodossa 1/7:

Salasanat ja suojaus

Vaikka voit asettaa vahvimman salasanan koskaan, on olemassa muita tapoja, joilla hakkeri voi murtautua järjestelmääsi. 95 % kyberhyökkäyksistä johtuu inhimillisistä virheistä. Yksi hakkereiden yleisimmistä menetelmistä on sosiaalinen manipulointi. Hakkeri voi lähettää sinulle väärennettyjä linkkejä sosiaaliseen mediaan tai verkkokauppasivustoille, jotka näyttävät laillisilta, mutta vaarantavat salasanasi, jos käytät niitä.

Suojautuaksesi näiltä tekniikoilta varmista, että avaat vain luotetusta lähteestä peräisin olevia linkkejä ja syötät tai tallennat vain tärkeitä tietoja turvallisesti.