Никогаш не смеете да чувате лозинка во обичен текст додека потврдувате корисник или правите нешто слично.
Бидејќи многу поединци ја користат истата лозинка, ако напаѓачот открие база на податоци со нешифрирани лозинки, тие лесно може да се користат заедно со соодветните е-пошта за да влезат во поврзаната веб-локација или сметка, па дури и да се користат за да се обидат да пристапат до други сметки.
Лозинките често се хашираат денес кога се дава лозинка. Препорачливо е да се меша со сол и да се чува солта заедно со хашираната лозинка.
Солењето може да изгледа како еден од чекорите во рецептот за хаш-кафеави, но во криптографијата, тоа се однесува на додавање случајни податоци на влезот на хаш-функцијата за да се осигура дека хашот секогаш ќе дава единствен резултат, дури и ако влезовите се идентични.
Како резултат на тоа, карактеристичниот хаш создаден со додавање на сол може да нè одбрани од неколку методи на напад, вклучително и напади на хаш-табели, додека ги задушува обидите за речник и брутална сила офлајн.
Овде, со помош на фрагменти од код, ќе покажеме како да користите „bcrypt“ за да ги заштитите вашите лозинки.
Значи, што е 'bcrypt'?
Bcrypt е библиотека за хаширање која поддржува неколку јазици и обезбедува специјално шифрирање на лозинка. За да се зголеми безбедноста на вашата лозинка, таа автоматски произведува дополнителни случајни знаци (сол) при шифрирање на вашата низа.
Можете исто така да изберете да дефинирате колку дополнителни знаци сакате да додадете на дојдовната низа.
Библиотеката bcrypt чита само бајт код, а не сурови низи. Затоа, пред да испратите дојдовна низа за лозинка во bcrypt за шифрирање, прво мора да ја шифрирате.
Шифрирањето и кодирањето не се исти работи. Само осигурува дека низата е машински читлива пред да биде покриена со техника на шифрирање.
Користење bcrypt за шифрирање на лозинка во Python
Пајтон го олеснува шифрирањето на лозинката bcrypt. Ќе се концентрираме на тоа да го правиме без помош на рамка. Но, не грижете се, ако разбирате како да ги зачувате корисничките влезови и да ги читате од базата на податоци, постапката е иста во рамки.
инсталација
Треба само да поставите виртуелна околина на Python, а потоа да користите IDE како PyCharm. Потоа прво мора да се инсталира библиотеката:
Шифрирање лозинка
Ајде да видиме како да користиме bcrypt за шифрирање на текст откако ќе се инсталира:
Гореспоменатиот Python код извршува и излегува низа од шифрирана бајт. Но, секогаш кога ќе го извршите сценариото, резултатот е различен. Bcrypt го користи овој метод за да се осигура дека секој корисник има лозинка која е специјално шифрирана.
Тоа, патем, е за шифрирање на лозинка.
Споредба и потврда на лозинки користејќи Bcrypt
Што се случува ако сакате да ја зачувате хашираната лозинка и да проверите подоцна дали се совпаѓа со лозинката што корисникот ја доставил за автентикација?
Тоа е едноставно. Само лозинката за автентикација мора да се споредува со влезот на базата на податоци (или во меморијата во овој случај).
Лозинката за автентикација исто така мора да биде кодирана пред да се спореди со онаа во базата на податоци бидејќи bcrypt може да чита само низи од бајти. Во основа, ќе го споредите кодираниот влез за автентикација со кодираната хаширана лозинка што моментално ја имате во вашата база на податоци.
Ајде да го тестираме ова со користење на фиктивни влезови на Python:
По извршувањето на гореспоменатиот код, ќе ви биде побарано нова лозинка. Ова е зачувано во меморија од Python. Во делот за автентикација, потоа ќе ја внесете истата лозинка, која е приватна за вас.
Ако лозинката се спореди и онаа што претходно била шифрирана и го зачувала совпаѓањето, Python емитува успешна порака.
Ако не, пораката за грешка се отпечатува и потоа се додава реченицата друго.
Основната идеја е идентична со онаа за регистрирање и потоа доставување лозинка во базата на податоци за автентикација.
Заклучок
Дури и додека едноставно користевме шифрирани лозинки за да покажеме како функционира bcrypt во обичната кратка меморија на Python, нејзината вистинска применливост лежи во апликациите од корисничка база.
Сепак, овој напис ги демонстрира основните методи за организирање на вашиот код за да го постигнете тоа, дури и во реални околности.
На пример, ако користите Flask, можете да ги обезбедите полињата за регистрација и автентикација преку посебни веб-формули наместо влезови.
Се разбира, додека ги споредувате лозинките, ќе читате од базата на податоци што содржи шифрирани лозинки кои се чуваат во реалниот свет.
Јона Нич
Ви благодариме за ова едноставно и едноставно објаснување,
Ова многу ми помогна во мојот сегашен проект.
Мислам дека е многу добро што примерот на кодот е ограничен на минималниот минимум и не е преоптоварен како многу други објаснувања.
Со почит