Bir kullanıcıyı onaylarken veya benzer bir şey yaparken asla şifreyi düz metin olarak tutmamalısınız.
Birçok kişi aynı parolayı kullandığından, bir saldırgan şifrelenmemiş parolalardan oluşan bir veritabanı keşfederse, bunlar bağlantılı web sitesine veya hesaba girmek için eşleşen e-postalarla birlikte kolayca kullanılabilir ve hatta diğer hesaplara erişmeye çalışmak için kullanılabilir.
Bir parola sağlandığında parolalar genellikle bugün karma hale getirilir. Tuz ile hash yapılması ve hash edilmiş şifre ile tuzun bir arada tutulması tavsiye edilir.
Tuzlama, bir karma kahve tarifindeki adımlardan biri gibi görünebilir, ancak kriptografide, girdiler aynı olsa bile karmanın her zaman benzersiz bir sonuç vermesini sağlamak için bir karma işlevinin girdisine rastgele veriler eklemek anlamına gelir.
Sonuç olarak, tuzun eklenmesiyle oluşturulan ayırt edici karma, sözlük ve kaba kuvvet çevrimdışı girişimleri bastırırken, karma tablo saldırıları da dahil olmak üzere çeşitli saldırı yöntemlerine karşı bizi koruyabilir.
Burada, kod parçacıklarının yardımıyla, parolalarınızı korumak için 'bcrypt'in nasıl kullanılacağını göstereceğiz.
Peki, 'bcrypt' nedir?
Bcrypt, birkaç dili destekleyen ve özel parola şifrelemesi sağlayan bir karma kitaplıktır. Parolanızın güvenliğini artırmak için, dizinizi şifrelerken otomatik olarak ek rastgele karakterler (tuz) üretir.
Ayrıca, gelen bir dizeye kaç ek karakter eklemek istediğinizi tanımlamayı da seçebilirsiniz.
bcrypt kitaplığı ham dizeleri değil, yalnızca bayt kodunu okur. Bu nedenle, gelen bir parola dizesini şifreleme için bcrypt'e göndermeden önce, onu kodlamanız gerekir.
Şifreleme ve kodlama aynı şeyler değildir. Bir şifreleme tekniği ile kapatılmadan önce bir dizenin makine tarafından okunabilir olmasını sağlar.
Python'da Parolayı Şifrelemek için bcrypt Kullanımı
Python, bcrypt parola şifrelemesini basitleştirir. Bunu bir çerçevenin yardımı olmadan yapmaya odaklanacağız. Ancak endişelenmeyin, kullanıcı girdilerini nasıl kaydedeceğinizi ve bunları veritabanından nasıl okuyacağınızı anlarsanız, prosedür çerçevelerde aynıdır.
Montaj
Yalnızca bir Python sanal ortamı kurmanız ve ardından PyCharm gibi bir IDE kullanmanız gerekir. Önce kitaplık kurulmalıdır:
Şifreleme şifresi
Yüklendikten sonra bir metni şifrelemek için bcrypt'in nasıl kullanılacağını görelim:
Yukarıda bahsedilen Python kodu, şifrelenmiş bir bayt dizesi yürütür ve çıktı verir. Ancak betiği her çalıştırdığınızda sonuç farklıdır. Bcrypt, her kullanıcının özel olarak şifrelenmiş bir parolaya sahip olduğundan emin olmak için bu yöntemi kullanır.
Bu, tesadüfen, şifre şifreleme içindir.
Bcrypt Kullanarak Parola Karşılaştırma ve Onaylama
Karma parolayı kaydetmek ve daha sonra kullanıcının kimlik doğrulama için gönderdiği parolayla eşleşip eşleşmediğini kontrol etmek isterseniz ne olur?
Bu basit. Yalnızca kimlik doğrulama parolası, veritabanı girişiyle (veya bu durumda bellekte) karşılaştırılmalıdır.
Kimlik doğrulama parolasının da, veritabanındaki parolayla karşılaştırılmadan önce kodlanması gerekir, çünkü bcrypt yalnızca bayt dizelerini okuyabilir. Temel olarak, kodlanmış bir kimlik doğrulama girişini, şu anda veritabanınızda sahip olduğunuz kodlanmış karma parolayla karşılaştıracaksınız.
Bunu hayali Python girdilerini kullanarak test edelim:
Yukarıda belirtilen kodu çalıştırdıktan sonra yeni bir şifre girmeniz istenir. Bu, Python tarafından belleğe kaydedilir. Kimlik doğrulama bölümünde, size özel olan aynı şifreyi gireceksiniz.
Parola karşılaştırılırsa ve daha önce şifrelenmiş ve eşleşmeyi kaydetmişse, Python bir başarı mesajı yayar.
Değilse, hata mesajı yazdırılır ve ardından else cümlesi eklenir.
Temel fikir, kimlik doğrulama için bir veritabanına kaydolmak ve ardından bir parola sağlamakla aynıdır.
Sonuç
Basit Python kısa belleğinde bcrypt'in nasıl çalıştığını göstermek için basitçe şifrelenmiş parolalar kullanmış olsak bile, gerçek uygulanabilirliği kullanıcı tabanlı uygulamalarda yatmaktadır.
Bununla birlikte, bu makale, gerçek dünya koşullarında bile bunu gerçekleştirmek için kodunuzu düzenlemenin temel yöntemlerini gösterir.
Örneğin, Flask kullanıyorsanız, kayıt ve kimlik doğrulama alanlarını girişler yerine ayrı web formları aracılığıyla sağlayabilirsiniz.
Elbette, şifreleri karşılaştırırken, gerçek dünyada tutulan şifreli şifreleri içeren bir veri tabanından okuyacaksınız.
Jona Nitsch
Bu basit ve basit açıklama için teşekkür ederiz,
Bu bana mevcut projemde çok yardımcı oldu.
Örnek kodun minimum düzeyde olması ve diğer birçok açıklama gibi aşırı yüklenmemesinin çok iyi olduğunu düşünüyorum.
Saygılarımla