Parola şifreleme, kullanıcıların parolalarını maskeler, böylece tahmin edilmesi veya kodunun çözülmesi zorlaşır. Güvenli kullanıcı tabanlı yazılım geliştirmede önemli bir adımdır. İster Flask ile ister başka bir hafif Python Çerçevesi ile inşa ediyor olun, bu adımı göz ardı edemezsiniz. İşte burada bcrypt devreye giriyor.
Python'da şifrenizi hash etmek için bcrypt'i nasıl kullanacağınızı göstereceğiz.
bcrypt Nasıl Çalışır?
Bcrypt, benzersiz parola şifrelemesi sunan, dilden bağımsız bir karma kitaplıktır. Dizenizi şifrelerken, parolanızın güvenliğini artırmak için varsayılan olarak fazladan rastgele karakterler (tuz) üretir.
İsteğe bağlı olarak, gelen bir dizeye eklemek istediğiniz fazladan karakter sayısını da belirleyebilirsiniz.
Thebcrypt kitaplığı ham dizeleri okumaz—yalnızca bayt kodu. Bu nedenle, başlamak için, şifreleme için bcrypt'e geçirmeden önce gelen bir parola dizesini kodlayacaksınız.
Kodlama, şifreleme ile aynı şey değildir. Yalnızca bir şifreleme algoritması onu maskelemeden önce bir dizenin makine tarafından okunabilir olmasını sağlar.
Python'da bir Parolayı bcrypt ile Şifrelemek
bcrypt parola şifrelemesi Python ile kolaydır. Bunu bir çerçeve kullanmadan nasıl yapacağımıza odaklanacağız. Ancak endişelenmeyin, kullanıcılarınızın girdilerini nasıl depolayacağınızı ve bunları veritabanından nasıl okuyacağınızı öğrendikten sonra, çerçevelerde aynı süreci takip eder.
bcrypt'i kurun ve kurun
Henüz yapmadıysanız, Python sanal ortamını etkinleştir proje kökünüzde. Ardından kullanarak bcrypt'i kurun pip:
pip kurulum bcrpyt
Şifreleri Şifrelemeye Başlayın
Kurulduktan sonra, bcrypt kullanarak bir dizenin nasıl şifreleneceğini görelim:
# bcrypt'i içe aktar:
bcrypt'i içe aktar
şifre = "parola dizem"
# Şifreyi okunabilir bir utf-8 bayt koduna kodlayın:
şifre = şifre.encode('utf-8')
# Ekodlanmış şifreyi hash edin ve bir tuz oluşturun:
hashedPassword = bcrypt.hashpw (şifre, bcrypt.gensalt())
yazdır (hashedPassword)
Sen ne zaman Python kodunu çalıştırın yukarıda, şifrelenmiş bir bayt dizisi yazdırır. Ancak çıktı, komut dosyasını her çalıştırdığınızda değişir. Bu, bcrypt'in her kullanıcının benzersiz bir şekilde şifrelenmiş bir parolaya sahip olmasını sağlar.
Bu arada, bu şifre şifreleme için.
bcrypt ile Şifreleri Karşılaştırma ve Onaylama
Karma parolayı saklamak ve daha sonra kimlik doğrulama sırasında kullanıcının sağladığı parolayla eşleştiğini onaylamak isterseniz ne olur?
Bu kolay. Yalnızca kimlik doğrulama parolasını veritabanında (veya bu durumda bellekte) depolanan parolayla karşılaştırmanız gerekir.
Ve bcrypt yalnızca bayt dizelerini okuduğundan, kimlik doğrulama parolasını veritabanındaki parolayla karşılaştırmadan önce kodlamanız gerekir. Özünde, veritabanınızda zaten depolanmış olan kodlanmış karma parola ile kodlanmış bir kimlik doğrulama girişini çapraz kontrol edeceksiniz.
Sahte Python girdilerini kullanarak, bunun pratikte nasıl çalıştığını görelim:
bcrypt'i içe aktar
#şifrenizi saklayın:
şifre = str (input("şifre girin: "))
# Saklanan şifreyi kodlayın:
şifre = şifre.encode('utf-8')
# Depolanan şifreyi şifreleyin:
karma = bcrypt.hashpw (şifre, bcrypt.gensalt (10))
# Bir kullanıcının doğru şifreyi girip girmediğini kontrol etmek için bir kimlik doğrulama şifresi giriş alanı oluşturun:
kontrol = str (input("şifreyi kontrol et:"))
# Kimlik doğrulama şifresini de kodlayın:
kontrol = check.encode('utf-8')
# Kimlik doğrulama şifresini saklanan şifreyle karşılaştırmak için koşulları kullanın:
if bcrypt.checkpw (kontrol, karma):
print("giriş başarılı")
Başka:
print("Yanlış şifre")
Yukarıdaki kod, çalıştırdığınızda yeni bir şifre girmenizi ister. Python bunu bellekte saklar. Ardından, kimlik doğrulama alanında aynı parolayı (yalnızca sizin bildiğiniz) sağlarsınız.
Python, karşılaştırılan parola önceden saklanan şifrelenmiş parolayla eşleşirse bir başarı mesajı yazdırır. Aksi takdirde, sarılı olarak başarısız mesajı verir. Başka Beyan:
Bütün konsept, kayıt sırasında bir şifreyi bir veritabanında saklamak ve daha sonra kimlik doğrulama sırasında sağlamakla aynıdır.
bcrypt ile Şifrelemeyi Ölçeklendirin
Bcrypt'in nasıl çalıştığını yalnızca şifrelenmiş parolaları düz Python kısa belleğinde depolayarak göstermiş olsak da, nihai kullanımı gerçek hayattaki kullanıcı tabanlı uygulamalardadır.
Bununla birlikte, bu öğretici, gerçek yaşam senaryolarında bile bunu başarmak için kodunuzu yapılandırmanın temel yollarını gösterir. Örneğin, Flask kullanıyorsanız, kayıt ve kimlik doğrulama alanlarına hizmet etmek için girişleri ayrı web formlarıyla değiştirebilirsiniz. Ve tabii ki, şifrelenmiş şifreleri gerçek hayattaki bir veritabanında saklayacak ve şifreleri karşılaştırırken ondan okuyacaksınız.
Herkes şifreleme hakkında konuşuyor ama kendinizi kaybolmuş veya kafanız karışmış mı buluyorsunuz? İşte bilmeniz gereken bazı önemli şifreleme terimleri.
Sonrakini Oku
- Programlama
- piton
- Programlama
- Güvenlik
Idowu akıllı teknoloji ve üretkenlik konusunda tutkulu. Boş zamanlarında kodlamayla uğraşıyor ve canı sıkılınca satranç tahtasına geçiyor ama arada sırada rutinden kopmayı da seviyor. İnsanlara modern teknolojinin yolunu gösterme tutkusu onu daha fazla yazmaya motive ediyor.
Haber bültenimize abone ol
Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!
Abone olmak için buraya tıklayın