Никада не смете да чувате лозинку у отвореном тексту док потврђујете корисника или радите нешто слично.
Пошто многи појединци користе исту лозинку, ако нападач открије базу података нешифрованих лозинки, они се лако могу користити у комбинацији са одговарајућим имејловима за улазак на повезану веб локацију или налог, па чак и за покушај приступа другим налозима.
Лозинке се данас често хеширају када се унесе лозинка. Саветује се хеширање са сољу и чување соли заједно са хешираном лозинком.
Сољење може изгледати као један од корака у рецепту за хеш браон, али у криптографији се односи на додавање насумичних података на улаз хеш функције како би се осигурало да ће хеш увек дати јединствен резултат чак и ако су улази идентични.
Као резултат тога, препознатљив хеш креиран додавањем соли може нас одбранити од неколико метода напада, укључујући нападе на хеш табеле, док гуши покушаје ван мреже помоћу речника и грубе силе.
Овде ћемо, уз помоћ исечака кода, показати како да користите 'бцрипт' да бисте заштитили своје лозинке.
Дакле, шта је 'бцрипт'?
Бцрипт је хеш библиотека која подржава неколико језика и пружа посебну шифру лозинке. Да би повећао сигурност ваше лозинке, она аутоматски производи додатне насумичне знакове (сол) приликом шифровања вашег стринга.
Такође можете изабрати да дефинишете колико додатних знакова желите да додате долазном низу.
Библиотека бцрипт чита само бајт код, а не необрађене стрингове. Стога, пре него што пошаљете низ долазне лозинке у бцрипт за шифровање, прво га морате кодирати.
Шифровање и кодирање нису исте ствари. Он само осигурава да стринг буде машински читљив пре него што буде прикривен техником шифровања.
Коришћење бцрипт за шифровање лозинке у Питхон-у
Питхон чини бцрипт шифровање лозинке једноставним. Концентрисаћемо се на то да ово урадимо без помоћи оквира. Али не брините, ако разумете како да сачувате корисничке уносе и прочитате их из базе података, процедура је иста у оквиру.
инсталација
Потребно је само да подесите Питхон виртуелно окружење, а затим да користите ИДЕ као што је ПиЦхарм. Библиотека се тада мора прво инсталирати:
Шифровање лозинке
Хајде да видимо како да користимо бцрипт за шифровање текста након што је инсталиран:
Горе поменути Питхон код извршава и емитује шифровани низ бајтова. Али сваки пут када покренете скрипту, резултат је другачији. Бцрипт користи овај метод да би се уверио да сваки корисник има лозинку која је посебно шифрована.
То је, узгред, за шифровање лозинке.
Поређење и потврда лозинки помоћу Бцрипт
Шта се дешава ако желите да сачувате хеширану лозинку и касније проверите да ли се подудара са лозинком коју је корисник послао за аутентификацију?
То је једноставно. Само лозинка за потврду идентитета мора да се упореди са уносом базе података (или у меморији у овом случају).
Лозинка за аутентификацију такође мора бити кодирана пре него што се упореди са оном у бази података јер бцрипт може да чита само низове бајтова. У суштини, упоредићете кодирани улаз за аутентификацију са кодираном хешираном лозинком коју тренутно имате у својој бази података.
Хајде да ово тестирамо користећи фиктивне Питхон улазе:
Након покретања горе поменутог кода, од вас ће бити затражено да унесете нову лозинку. Питхон ово чува у меморији. У одељку за потврду идентитета унећете исту лозинку, која је приватна за вас.
Ако се лозинка упореди са оном која је претходно шифрована и сачувана подударност, Питхон емитује поруку о успеху.
Ако није, порука о грешци се штампа, а затим се додаје реченица елсе.
Основна идеја је идентична оној да се региструјете, а затим дате лозинку у базу података за аутентификацију.
Zakljucak
Чак иако смо једноставно користили шифроване лозинке да бисмо показали како бцрипт функционише у обичној краткој меморији Питхон-а, његова стварна применљивост лежи у апликацијама заснованим на корисницима.
Ипак, овај чланак показује основне методе за организовање вашег кода да бисте то постигли, чак иу стварним околностима.
На пример, ако користите Фласк, можете да обезбедите поља за регистрацију и аутентификацију преко засебних веб образаца уместо уноса.
Наравно, док упоређујете лозинке, читаћете из базе података која садржи шифроване лозинке које се чувају у стварном свету.
Јона Нитсцх
Хвала вам на овом једноставном и једноставном објашњењу,
Ово ми је много помогло у мом тренутном пројекту.
Мислим да је веома добро што је пример кода ограничен на минимум и није преоптерећен као многа друга објашњења.
Срдачан поздрав