Шифроването на паролата маскира паролите на потребителите, така че стават трудни за отгатване или декодиране. Това е съществена стъпка в разработването на защитен софтуер с потребителска база. Независимо дали създавате такъв с Flask или друга лека Python Framework, не можете да пренебрегнете тази стъпка. Ето къде идва bcrypt.

Ще ви покажем как да използвате bcrypt за хеширане на паролата си в Python.

Как работи bcrypt

Bcrypt е независима от езика библиотека за хеширане, която предлага уникално криптиране на парола. Докато криптира вашия низ, той генерира допълнителни произволни знаци (сол) по подразбиране, за да повиши сигурността на вашата парола.

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

Библиотеката bcrypt не чете необработени низове - само байтов код. Така че, за да започнете, първо ще кодирате низ от входяща парола, преди да го предадете на bcrypt за криптиране.

Кодирането не е същото като криптирането. Той само гарантира, че низът става машинно четим, преди алгоритъм за криптиране да може да го маскира.

instagram viewer

Шифроване на парола в Python с bcrypt

bcrypt криптирането на парола е лесно с Python. Ще се съсредоточим върху това как да направим това без използване на рамка. Но не се притеснявайте, той следва същия процес в рамки, след като знаете как да съхранявате въведените данни на вашите потребители и да ги четете от базата данни.

Инсталирайте и настройте bcrypt

Ако още не сте го направили, активирате виртуална среда на Python в корена на вашия проект. След това инсталирайте bcrypt с помощта на пип:

pip инсталирайте bcrpyt

Започнете да шифровате пароли

След като бъде инсталиран, нека да видим как да шифровате низ с помощта на bcrypt:

# Импортиране на bcrypt:
импортирайте bcrypt
парола = "mypasswordstring"
# Кодиране на парола в четим utf-8 байтов код:
парола = password.encode('utf-8')
# Хеширайте кодираната парола и генерирайте сол:
hasshedPassword = bcrypt.hashpw (парола, bcrypt.gensalt())
печат (хеширана парола)

Когато ти стартирайте кода на Python по-горе, той отпечатва криптиран байтов низ. Резултатът обаче се променя всеки път, когато изпълнявате скрипта. Ето как bcrypt гарантира, че всеки потребител има уникално криптирана парола.

Това е за криптиране на парола, между другото.

Как да сравните и потвърдите пароли с bcrypt

Ами ако искате да съхраните хешираната парола и по-късно да потвърдите, че тя съвпада с предоставената от потребителя парола по време на удостоверяване?

Това е лесно. Трябва само да сравните паролата за удостоверяване с тази, съхранена в базата данни (или в паметта в този случай).

И тъй като bcrypt чете само байтови низове, вие също ще трябва да кодирате паролата за удостоверяване, преди да я сравните с тази в базата данни. По същество ще проверите кръстосано кодиран вход за удостоверяване с кодираната хеширана парола, която вече е съхранена във вашата база данни.

Използвайки фиктивни входове на Python, нека да видим как работи това на практика:

импортирайте bcrypt
#запазете паролата си:
парола = str (input("въвеждане на парола: "))
# Кодиране на съхранената парола:
парола = password.encode('utf-8')
# Шифрирайте съхранената парола:
хеширан = bcrypt.hashpw (парола, bcrypt.gensalt (10))
# Създайте поле за въвеждане на парола за удостоверяване, за да проверите дали потребителят въвежда правилната парола:
check = str (input("проверка на паролата: "))
# Кодирайте и паролата за удостоверяване:
check = check.encode('utf-8')
# Използвайте условия, за да сравните паролата за удостоверяване със запазената:
ако bcrypt.checkpw (проверка, хеширана):
print("успешно влизане")
друго:
print("неправилна парола")

Горният код ви моли да въведете нова парола, когато го изпълните. Python съхранява това в паметта. След това ще предоставите същата парола (известна само на вас) в полето за удостоверяване.

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

Цялата концепция е същата като съхраняването на парола в база данни по време на регистрация и предоставянето й по-късно по време на удостоверяване.

Увеличете криптирането с bcrypt

Въпреки че само демонстрирахме как bcrypt работи чрез съхраняване на криптирани пароли в обикновена къса памет на Python, крайната му употреба е в реални потребителски приложения.

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

12 основни условия за криптиране, които всеки трябва да знае досега

Всички говорят за криптиране, но се оказвате изгубени или объркани? Ето някои ключови термини за криптиране, които трябва да знаете.

Прочетете Следващото

Дялтуителектронна поща
Свързани теми
  • Програмиране
  • Python
  • Програмиране
  • Сигурност
За автора
Идову Омисола (публикувани 116 статии)

Idowu е страстен за всичко, което е интелигентна технология и производителност. В свободното си време той играе наоколо с кодирането и преминава към шахматната дъска, когато му е скучно, но също така обича да се откъсва от рутината от време на време. Страстта му да показва на хората пътя около съвременните технологии го мотивира да пише повече.

Още от Idowu Omisola

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!

Щракнете тук, за да се абонирате