Шифровање лозинке маскира корисничке лозинке тако да их је тешко погодити или декодирати. То је суштински корак у развоју безбедног софтвера за корисничку базу. Без обзира да ли га правите са Фласк-ом или другим лаганим Питхон Фрамеворк-ом, не можете занемарити тај корак. Ту долази бцрипт.

Показаћемо вам како да користите бцрипт за хеширање лозинке у Питхон-у.

Како бцрипт функционише

Бцрипт је библиотека хеширања која не зависи од језика која нуди јединствено шифровање лозинке. Док шифрује ваш стринг, он подразумевано генерише додатне насумичне знакове (сол) како би повећао безбедност ваше лозинке.

Опционо, такође можете одредити број додатних знакова које желите да додате у долазни низ.

Библиотека Тхебцрипт не чита необрађене стрингове – само бајт код. Дакле, за почетак, прво ћете кодирати долазни низ лозинке пре него што га проследите у бцрипт за шифровање.

Кодирање није исто што и шифровање. Он само осигурава да стринг постане машински читљив пре него што га алгоритам шифровања може маскирати.

instagram viewer

Шифровање лозинке у Питхон-у помоћу бцрипт-а

бцрипт шифровање лозинке је једноставно са Питхон-ом. Фокусираћемо се на то како то учинити без употребе оквира. Али без бриге, прати исти процес у оквирима када знате како да ускладиштите уносе својих корисника и прочитате их из базе података.

Инсталирајте и подесите бцрипт

Ако то већ нисте урадили, активирати Питхон виртуелно окружење у корену вашег пројекта. Затим инсталирајте бцрипт користећи пип:

пип инсталл бцрпит

Почните да шифрујете лозинке

Једном инсталирано, хајде да видимо како да шифрујемо стринг користећи бцрипт:

# Увези бцрипт:
импорт бцрипт
лозинка = "моја лозинка стринг"
# Кодирајте лозинку у читљив утф-8 бајт код:
лозинка = лозинка.енцоде('утф-8')
# Хеширајте шифровану лозинку и генеришете со:
хассхедПассворд = бцрипт.хасхпв (лозинка, бцрипт.генсалт())
штампа (хеширана лозинка)

Када ти покрените Питхон код изнад, штампа шифровани низ бајтова. Излаз се, међутим, мења сваки пут када извршите скрипту. Овако бцрипт осигурава да сваки корисник има јединствено шифровану лозинку.

То је за шифровање лозинке, иначе.

Како упоредити и потврдити лозинке помоћу бцрипт-а

Шта ако желите да сачувате хеширану лозинку и касније потврдите да се поклапа са лозинком коју је дао корисник током аутентификације?

То је лако. Потребно је само да упоредите лозинку за аутентификацију са оном која је ускладиштена у бази података (или у меморији у овом случају).

А пошто бцрипт чита само низове бајтова, такође ћете морати да кодирате лозинку за аутентификацију пре него што је упоредите са оном у бази података. У суштини, ви ћете унакрсно проверити кодирани улаз за аутентификацију са кодираном хешираном лозинком која је већ ускладиштена у вашој бази података.

Користећи лажне Питхон улазе, да видимо како ово функционише у пракси:

импорт бцрипт
#сачувајте своју лозинку:
лозинка = стр (инпут("унос лозинка: "))
# Кодирајте сачувану лозинку:
лозинка = лозинка.енцоде('утф-8')
# Шифрујте сачувану лозинку:
хеширано = бцрипт.хасхпв (лозинка, бцрипт.генсалт (10))
# Направите поље за унос лозинке за потврду идентитета да бисте проверили да ли корисник уноси исправну лозинку:
цхецк = стр (инпут("провери лозинку: "))
# Кодирајте и лозинку за потврду идентитета:
цхецк = цхецк.енцоде('утф-8')
# Користите услове да упоредите лозинку за аутентификацију са сачуваном:
ако бцрипт.цхецкпв (чек, хеширано):
принт("успешно пријављивање")
остало:
принт("нетачна лозинка")

Горњи код тражи од вас да унесете нову лозинку када га извршите. Питхон ово чува у меморији. Затим ћете унети исту лозинку (познату само вама) у пољу за потврду идентитета.

Питхон штампа поруку о успеху ако се упоређена лозинка поклапа са претходно сачуваном шифрованом. У супротном, шаље неуспелу поруку умотану у друго изјава:

Цео концепт је исти као чување лозинке у бази података током регистрације и њено пружање касније током аутентификације.

Повећајте шифровање помоћу бцрипт

Иако смо само демонстрирали како бцрипт функционише тако што чува шифроване лозинке у обичну Питхон кратку меморију, његова крајња употреба је у апликацијама у стварном животу корисника.

Без обзира на то, овај водич показује основне начине структурирања вашег кода да бисте то постигли, чак иу сценаријима из стварног живота. На пример, ако користите Фласк, можете да замените уносе засебним веб обрасцима који ће служити пољима за регистрацију и аутентификацију. И наравно, чуваћете шифроване лозинке у бази података из стварног живота и читати из ње приликом упоређивања лозинки.

12 основних услова шифровања које би сви требали знати до сада

Сви причају о шифровању, али да сте изгубљени или збуњени? Ево неколико кључних термина за шифровање које треба да знате.

Реад Нект

ОбјавиТвеетЕмаил
Повезане теме
  • Програмирање
  • Питхон
  • Програмирање
  • Безбедност
О аутору
Идову Омисола (Објављено 116 чланака)

Идову је страствен за све паметне технологије и продуктивност. У слободно време игра се са кодирањем и прелази на шаховску таблу када му је досадно, али такође воли да се с времена на време одвоји од рутине. Његова страст да људима покаже пут око модерне технологије мотивише га да пише више.

Више од Идову Омисола

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, рецензије, бесплатне е-књиге и ексклузивне понуде!

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