İstifadəçini təsdiqləyərkən və ya oxşar bir şey edərkən heç vaxt açıq mətndə parol saxlamamalısınız.
Bir çox fərd eyni paroldan istifadə etdiyinə görə, təcavüzkar şifrələnməmiş parolların verilənlər bazasını aşkar edərsə, onlar asanlıqla əlaqəli vebsayt və ya hesaba daxil olmaq üçün uyğun e-poçtlarla birlikdə istifadə edilə bilər və hətta digər hesablara daxil olmaq üçün istifadə edilə bilər.
Bu gün parol təqdim edildikdə parollar tez-tez heşlənir. Duzla haşlamaq və duzu haşlanmış parolla birlikdə saxlamaq tövsiyə olunur.
Tuzlama hash-qəhvəyi üçün reseptin addımlarından biri kimi görünə bilər, lakin kriptoqrafiyada bu, girişlər eyni olsa belə, hash-in həmişə unikal nəticə verməsini təmin etmək üçün hash funksiyasının girişinə təsadüfi məlumatların əlavə edilməsini nəzərdə tutur.
Nəticə olaraq, duzun əlavə edilməsi ilə yaradılan fərqli hash bizi bir neçə hücum metodundan, o cümlədən heş cədvəlinə hücumlardan qoruya bilər, eyni zamanda lüğəti və kobud oflayn oflayn cəhdləri boğur.
Burada kod parçalarının köməyi ilə parollarınızı qorumaq üçün "bcrypt"-dən necə istifadə edəcəyinizi nümayiş etdirəcəyik.
Beləliklə, 'bcrypt' nədir?
Bcrypt bir neçə dili dəstəkləyən və xüsusi parol şifrələməsini təmin edən hashing kitabxanasıdır. Parolunuzun təhlükəsizliyini artırmaq üçün siminizi şifrələyərkən avtomatik olaraq əlavə təsadüfi simvollar (duz) yaradır.
Siz həmçinin gələn sətirə neçə əlavə simvol əlavə etmək istədiyinizi müəyyən etməyi seçə bilərsiniz.
Bcrypt kitabxanası xam sətirləri deyil, yalnız bayt kodunu oxuyur. Buna görə də, şifrələmə üçün bcrypt-ə daxil olan parol sətirini təqdim etməzdən əvvəl onu kodlamalısınız.
Şifrələmə və kodlaşdırma eyni şeylər deyil. Sadəcə şifrələmə üsulu ilə ört-basdır edilməzdən əvvəl sətirin maşın tərəfindən oxuna biləcəyinə əmin olur.
Python-da Parolun Şifrələnməsi üçün bcrypt istifadə edin
Python bcrypt parol şifrələməsini sadə edir. Biz bunu çərçivənin köməyi olmadan etməyə cəmləşəcəyik. Ancaq narahat olmayın, əgər istifadəçi daxiletmələrini necə saxlamağı və verilənlər bazasından oxumağı başa düşsəniz, çərçivələrdə prosedur eynidir.
quraşdırma
Siz yalnız Python virtual mühitini qurmalı və sonra PyCharm kimi IDE-dən istifadə etməlisiniz. Sonra əvvəlcə kitabxana quraşdırılmalıdır:
Şifrələmə parolu
Quraşdırıldıqdan sonra mətni şifrələmək üçün bcrypt-dən necə istifadə edəcəyinə baxaq:
Yuxarıda qeyd olunan Python kodu şifrələnmiş bayt sətirini icra edir və çıxarır. Amma hər dəfə skripti işlədəndə nəticə fərqli olur. Bcrypt hər bir istifadəçinin xüsusi olaraq şifrələnmiş parola malik olduğundan əmin olmaq üçün bu üsuldan istifadə edir.
Bu, yeri gəlmişkən, parol şifrələməsi üçündür.
Bcrypt istifadə edərək parolun müqayisəsi və təsdiqi
Haşlanmış parolu saxlamaq və sonra onun istifadəçinin autentifikasiya üçün təqdim etdiyi parola uyğun olub-olmadığını yoxlamaq istəsəniz nə olacaq?
Bu sadədir. Yalnız autentifikasiya parolu verilənlər bazası girişi ilə müqayisə edilməlidir (yaxud bu halda yaddaşda).
Doğrulama parolu da verilənlər bazasındakı parolla müqayisə edilməzdən əvvəl kodlaşdırılmalıdır, çünki bcrypt yalnız bayt sətirlərini oxuya bilir. Əsasən, siz kodlanmış identifikasiya girişini hazırda verilənlər bazanızda olan kodlaşdırılmış hashed parol ilə müqayisə edəcəksiniz.
Gəlin bunu uydurma Python girişlərindən istifadə edərək yoxlayaq:
Yuxarıda göstərilən kodu işlətdikdən sonra sizdən yeni parol tələb olunur. Bu Python tərəfindən yaddaşda saxlanılır. Autentifikasiya bölməsində daha sonra sizin üçün özəl olan eyni parolu daxil edəcəksiniz.
Parol müqayisə edilərsə və əvvəllər şifrələnmiş və uyğunluğu saxlamış parol müqayisə edilərsə, Python müvəffəqiyyət mesajı verir.
Əks halda, səhv mesajı çap olunur və sonra başqa cümlə əlavə olunur.
Əsas ideya qeydiyyatdan keçmək və sonra autentifikasiya üçün verilənlər bazasına parol təqdim etmək ideyası ilə eynidir.
Nəticə
Bcrypt sadə Python qısa yaddaşında necə işlədiyini göstərmək üçün sadəcə şifrələnmiş parollardan istifadə etsək də, onun faktiki tətbiqi istifadəçi bazası tətbiqlərində olur.
Buna baxmayaraq, bu məqalə real dünya şəraitində belə bunu həyata keçirmək üçün kodunuzu təşkil etmək üçün əsas üsulları nümayiş etdirir.
Məsələn, Flask istifadə edirsinizsə, qeydiyyat və autentifikasiya sahələrini girişlər əvəzinə ayrıca veb formalar vasitəsilə təmin edə bilərsiniz.
Əlbəttə, parolları müqayisə edərkən, siz real dünyada saxlanılan şifrələnmiş parolları ehtiva edən verilənlər bazasından oxuyacaqsınız.
Jona Nitsch
Bu sadə və sadə izahat üçün təşəkkür edirik,
Bu, indiki layihəmdə mənə çox kömək etdi.
Düşünürəm ki, nümunə kodun çılpaq minimumla məhdudlaşması və bir çox digər izahatlar kimi həddən artıq yüklənməməsi çox yaxşıdır.
Best regards