Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор. Прочетете още.

Данните са жизненоважен актив в днешния дигитален свят. Повече от осем милиона души стават жертва на хакери всяка година и повече от 2200 кибератаки се извършват всеки ден. При такъв тревожен процент на киберпрестъпления, използването на най-добри практики за защита от хакери става приоритет. Един от най-важните аспекти на всеки акаунт е неговата парола.

Ако хакер компрометира вашата парола, той може да получи достъп до вашата лична информация и дори банковата ви сметка за няколко минути. Въпреки че това звучи страшно, можете да научите как да защитите паролите си, като използвате най-добрите практики, като създадете своя собствена програма на Python, за да проверите нейната сила.

Различни правила за задаване на силни пароли

Някои правила за силна парола, които може да обмислите да приложите, са:

  1. Паролата трябва да е с дължина поне 12 знака. Колкото по-дълга е паролата, толкова по-малък е шансът атака с груба сила да я компрометира.
    instagram viewer
  2. Паролата трябва да съдържа комбинация от малки букви, главни букви, цифри и специални знаци.
  3. Избягвайте повтарянето на знаци в паролата.
  4. Не трябва да съдържа лични данни като имена, телефонни номера или нещо, което някой лесно може да познае.
  5. Това не трябва да е често срещана речникова дума, въпреки че можете да използвате думи в по-дълги фрази за пароли.
  6. Паролата не трябва да е една и съща за няколко акаунта. Можеш настройте мениджър на пароли за автоматично попълване на различни пароли за различни сайтове, без да помните всяка една от тях.

Има различни начини за създайте неразбиваема парола, която можете да запомните. Някои от тях използват детски песнички, цитати от филми, индустриален жаргон и др.

Как да проверите силата на вашата парола с помощта на Python

Можете да създадете програма за тестване на силата на паролата, като проверите горните характеристики. За тази компилация ще ви трябват два модула: низ и колекции.

Можете също да използвате getpass модул за скриване на парола, докато потребителят я въвежда. Това помага да защитите паролата си, когато трябва да я въвеждате публично. За да инсталирате getpass във вашата локална среда, отворете терминал и въведете:

пип Инсталирай getpass4

Можете да използвате класа String, за да проверите дали знакът е буква, цифра или символ. Можете да използвате колекции, за да проверите дали има символи в паролата, които се повтарят.

Използвайте ключовата дума def, за да дефинирате функция с име check_password_strength() и му предайте паролата, която ще получите като параметър.

Инициализирайте шест променливи: долен_алфа_брой, горен_алфа_брой, брой_брой, специален_брой_символи, дължина, често срещани до нула. Те проверяват наличието на малка азбука, главна азбука, цифри, специални знаци, дължина, повторение на знаци в паролата.

Предайте паролата, която сте получили от потребителя, на списък () функция, за да го преобразувате в списък със знаци. С помощта на цикъла for итерирайте всеки знак от списъка. Използвайте командата if-else, за да проверите дали знакът е малка буква, главна буква, число или специален знак и съответно актуализирайте броя.

Можете да приемете, че всичко друго от азбуката или числото е специален знак. За повече ограничения можете да съхранявате специални символи като низ и да проверявате дали символът на паролата присъства в него. Освен това някои уебсайтове ви позволяват да използвате бели интервали в парола. Можете да зададете различна променлива и да я увеличите или да я вземете предвид в самия брой на специалните знаци.

импортиране низ
импортиране колекции

дефпроверка_сила_на_парола(парола):
lower_alpha_count = upper_alpha_count = number_count = special_char_count = дължина = общ = 0

за овъгляване списък(парола):
аковъглен в string.ascii_lowercase:
долен_алфа_брой += 1
елиф въглен в string.ascii_uppercase:
upper_alpha_count += 1
елиф въглен в string.digits:
брой_брой += 1
друго:
special_char_count += 1

Ще ви трябва списък с пароли или база данни, за да проверите дали паролата на потребителя е обща. Можете да изтеглите списък с един милион най-популярни пароли от Хранилището на GitHub за общи идентификационни данни на SecLists.

Запазете текстовия файл като common_password_list.txt. Използвайте оператора with, за да извършите обработка на изключения и да отворите файла с паролата в режим на четене. Използвай Прочети() функция, за да получите съдържанието във файла и да го съхраните в променлива с име content.

Ако въведената от потребителя парола не присъства в списъка с общи пароли, увеличете стойността на общата променлива с единица.

сотворен("common_password_list.txt", "р") катофайл:
съдържание = file.read()

ако паролата не е в съдържанието:
общ += 1

За да проверите дължината на паролата, просто я предайте на len() функция и проверете дали е по-голямо или равно на дванадесет. Ако е така, увеличете стойността на променливата дължина.

акоlen(парола) >= 12:
дължина += 1

За да проверите за повторение на знаци в паролата, използвайте подкласа Counter от Collections. Броячът е неподредена колекция от двойки ключ и стойност, където ключът е самият елемент, а стойността е броят на елемента.

Използвайте метода за разбиране на списък, за да направите списък с повтарящи се знаци от речника, който получавате с помощта на колекции. Прегледайте речника и проверете дали броят на знака е по-голям от едно. Ако броят е по-голям, добавете го към списък и го запазете в повторение.

 countOfWords = колекции. Брояч (парола)
повтаря се = [i за i в countOfWords ако countOfWords[i] > 1]

Сега, след като имате стойностите на отделните характеристики, инициализирайте променлива с име на сила на нула. Както подсказва името, ще видите тази променлива, за да проверите силата на паролата. Системата за оценяване е от седем, по една точка за всяко включване на знак и характеристика на силна парола.

Проверете дали броят на малки букви, главни букви, числа, специални знаци е по-голям или равен на едно и увеличете силата с едно за всяко присъствие. По същия начин проверете дали дължината и общата променлива са равни на единица и дали дължината на повтарящия се знак е равна на нула. Ако е вярно, увеличава стойността на променливата за сила.

 сила = 0

ако lower_alpha_count >= 1:
сила += 1

ако upper_alpha_count >= 1:
сила += 1

ако number_count >= 1:
сила += 1

ако special_char_count >= 1:
сила += 1

ако дължина == 1:
сила += 1

ако е често == 1:
сила += 1

акоlen(повтаря се)== 0:
сила += 1

Използвайте многоредовия низ (три кавички), за да покажете няколко реда текст в един оператор за печат. Използвайте литералната Sring Interpolation или f-strings или за показване на броя на характеристиките. Можете да постигнете това чрез писане f в началото на низа в оператора за печат и оградете променливите във къдрави скоби. Използвате интерполация на низ, тъй като съдържанието в оператора за печат е низ, но стойността на променливите е цяло число.

печат""„Вашата парола съдържа:- 
{lower_alpha_count} малки букви
{upper_alpha_count} главни букви
{number_count} цифри
{special_char_count} специални символа
{length} дължина
{common} често
{repeated} се повтаря
„Резултат за парола: {сила}/7“"")

Накрая използвайте израза за въвеждане, за да получите паролата от потребителя и да я предадете на проверка_сила_на_парола функция. Въз основа на силата на паролата, програмата ще покаже резултата заедно с броя на характеристиките, присъстващи в паролата.

парола = въвеждане(„Въведете паролата:“)
check_password_strength (парола)

Изход от инструмента за проверка на силата на паролата

При въвеждане на силна парола въз основа на споменатите характеристики, програмата Python показва силата като 7/7:

При въвеждане на слаба и често срещана парола програмата Python показва силата като 1/7:

Пароли и сигурност

Въпреки че можете да зададете най-надеждната парола досега, има и други начини хакер да проникне във вашата система. 95% от кибератаките са резултат от човешка грешка. Един от най-разпространените методи, използвани от хакерите, е социалното инженерство. Хакерът може да ви изпрати фалшиви връзки към социални медии или уебсайтове за електронна търговия, които изглеждат легитимни, но компрометират паролата ви, ако ги използвате.

За да се предпазите от тези техники, уверете се, че отваряте връзки само от доверен източник и въвеждате или съхранявате само важна информация по сигурен начин.