Шифроването на паролата маскира паролите на потребителите, така че стават трудни за отгатване или декодиране. Това е съществена стъпка в разработването на защитен софтуер с потребителска база. Независимо дали създавате такъв с Flask или друга лека Python Framework, не можете да пренебрегнете тази стъпка. Ето къде идва bcrypt.
Ще ви покажем как да използвате bcrypt за хеширане на паролата си в Python.
Как работи bcrypt
Bcrypt е независима от езика библиотека за хеширане, която предлага уникално криптиране на парола. Докато криптира вашия низ, той генерира допълнителни произволни знаци (сол) по подразбиране, за да повиши сигурността на вашата парола.
По избор можете също да посочите броя на допълнителните знаци, които искате да добавите към входящ низ.
Библиотеката bcrypt не чете необработени низове - само байтов код. Така че, за да започнете, първо ще кодирате низ от входяща парола, преди да го предадете на bcrypt за криптиране.
Кодирането не е същото като криптирането. Той само гарантира, че низът става машинно четим, преди алгоритъм за криптиране да може да го маскира.
Шифроване на парола в 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, можете да замените входните данни с отделни уеб формуляри, които да обслужват полетата за регистрация и удостоверяване. И разбира се, вие ще съхранявате криптирани пароли в реална база данни и ще четете от нея, когато сравнявате пароли.
Всички говорят за криптиране, но се оказвате изгубени или объркани? Ето някои ключови термини за криптиране, които трябва да знаете.
Прочетете Следващото
- Програмиране
- Python
- Програмиране
- Сигурност
Idowu е страстен за всичко, което е интелигентна технология и производителност. В свободното си време той играе наоколо с кодирането и преминава към шахматната дъска, когато му е скучно, но също така обича да се откъсва от рутината от време на време. Страстта му да показва на хората пътя около съвременните технологии го мотивира да пише повече.
Абонирайте се за нашия бюлетин
Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!
Щракнете тук, за да се абонирате