Çok yaklaştık, neredeyse bitiş çizgisini görebiliyorum.
Dayanmaya çalışıyorum.
Artık hash ve sayıya sahibiz, böylece her bir öğe arasında döngü yaparken burada taranan şifre sızıntılarını alma
işlevini sonlandırabiliriz.
Neyi kontrol etmek istiyoruz?
Peki, buradaki hash'in hikayesi olan hash olup olmadığını kontrol etmek istiyoruz.
Hash'e eşittir.
Kontrol etmek, hatırlamak, hash etmek.
Kontrol etmek için, kendi makinemizdeki hiç kimseye göndermediğimiz karma parolamızın kuyruk ucudur.
Yani güzel ve güvenli.
API bize bu kuyruklu hash'lerin bir listesini döndürdüğü için bunu kontrol edeceğiz.
Eğer bu eşleşirse, bu durumda sayıyı geri vermenizi istiyorum.
Bu yüzden bu şifrenin kaç kez sızdırıldığını öğrenmek istiyorum?
Aksi takdirde sadece geri dönün.
Sıfır.
Yine, bunu yapabilirim çünkü return anahtar sözcüğünü her gördüğünde bu döngüden çıkacaktır.
Şimdi pwned API kontrolümde, intel'in tüm bu bilgileri alacağı ve hash edilmiş şifrenin sızdırıldığı
zamanların sayısını döndüreceği bu işlevi çalıştıracağım.
Yapmamız gereken son bir şey var.
Bu, tüm bu hesaplamaların sonucunu gerçekten yazdırabilme yeteneğidir.
Bu yüzden şimdilik bunu kaldıralım ve bir ana fonksiyon oluşturalım.
Ve bu ana fonksiyon, komut satırımızda kendisine verdiğimiz argümanları alacak.
Bu yüzden, daha önce görmüş olabileceğiniz gibi, CIS modülünü içe aktaracağız.
Ve burada, kontrol etmek istediğimiz şifreler olan argümanları alan bir ana fonksiyonumuz
olacak.
Ve şimdilik, burayı geçiyoruz.
Ancak en altta, ana işlevi çağıracağız.
CIS dot RV ile python three check my past up pi yaptıktan sonra herhangi bir sayıda argüman kabul ediyoruz ve sonra ona istediğimiz
tüm argümanları veriyoruz, bunlar şifreler.
Fonksiyonu şu şekilde çalıştıracağız.
Bu ana işlev.
Yapacağımız tek şey, argümanlarda parola için diyeceğiz çünkü birden fazla parola verebiliriz.
Bunun üzerinden geçeceğiz.
Ve sha one şifresi alacağız.
Ve bir sayım, ya da sadece sayım yapacağız çünkü sayımı get password leaks sayımından alacağız.
Yani bunu sadece pwned api kontrolü yaparak yapabiliriz.
Ve kontrol ettiğimiz şifreyi ona ileteceğiz.
Yapacağımız tek şey aslında bu bloğun içinde, bu durumda sayım varsa, bir F dizesi yazdırmanızı
istiyorum ve bu F dizesi şöyle diyecek.
O.
Döngüye soktuğumuz şifre.
Bulundu.
Kaç kez saydınız?
Sonra da muhtemelen değişmeniz gerektiğini söyleyeceğiz.
Şifreniz.
Aksi takdirde.
Eğer bu sayım olmadığı, yani eşleşme olmadığı anlamına geliyorsa, o zaman sorun yok demektir.
Şöyle diyebiliriz.
Eğer dize.
Şifre.
Bulunamadı.
Devam et.
Yani bu iyi bir şifre.
Devam etmelisin.
Hepiniz iyisiniz.
Ve son olarak, sadece eğlence olsun diye, bu fonksiyondan çıkalım.
Geri dönmek mi?
Aynen böyle yapıldı.
Bunu kaydedersem, bakalım bize ne verecek.
Python 3 diyeceğim.
Geçiş kartımı kontrol et ve sadece kontrol edelim.
Alo?
Anladım.
Merhaba.
Devam etmek eğlenceli değildi ama merhabanın daha önce bulunduğunu biliyoruz.
Doğru.
Yani, bu basit bir şifre.
Aslında burada iyi bir şey bulmalıyız.
Şimdi, bu baskı yanıtını da kaldırmak istiyorum.
Artık ihtiyacımız olmadığına göre, hatayı tespit edebilir misiniz?
Yine, bu Python'da biraz zor bir kısım, değil mi?
Bu girinti ve daha önce gördüğümüz bir şey.
Yani kendi kodunuzda hata ayıklama ve bu durumda ne olduğunu bulma konusunda iyi olmak istiyorsanız,
kodda adım adım ilerleyebiliriz, ancak şunu düşünebiliriz: Hmm, aslında bu count işlevini hiç test etmedik.
Ve buraya bakarsak, girintimiz biraz yanlış, değil mi?
If kontrolümüz var, ancak sonra her zaman sıfır döndürüyoruz.
Bu dönüş, for döngüsünden sonra bu şekilde olmalıdır.
Her şeyi kontrol ettikten sonra, hiçbir şey eşleşmedi.
O zaman sıfır döndürmeliyiz.
Yani bunu kaydedip tekrar çalıştırırsam.
Tamam, şimdi çalışıyor.
Basit bir küçük hatanın size tamamen farklı sonuçlar verebileceğini fark ettiniz.
Bu yüzden adım adım ilerlemek ve zaten işe yaradığını bildiğiniz bir şeyle bir şeyler denemek her zaman iyidir.
Ayrıca, kurs boyunca geliştireceğiniz hata ayıklama becerilerinizi kullanarak bir şeyleri çözmeye çalışmanız
da önemlidir.
Şimdi, hiçbir programcı hemen mükemmel bir program yazmayacaktır.
Çoğu zaman bu hatayı neden aldığınızı, bunun neden olduğunu anlamaya çalışıyorsunuz
ve bu sadece kod yazdıkça daha iyi hale geldiğiniz bir şey.
Yani bunun tek çaresi kodlamaya devam etmek.
Umarım kurs boyunca hata ayıklama yöntemimde yaptığım bazı hataları görmüşsünüzdür ve böylece siz de
bu kalıpları benimsemeye başlarsınız.
Her neyse, bu harika.
Sonunda işe yarıyor.
Birkaç şey daha deneyelim.
Güle güle diyelim, sonra da saçma sapan şeyler.
Tamam.
Bu da işe yarıyor gibi görünüyor.
Bu harika bir şey.
Şifre denetleyicimiz çalışıyor.
Şimdi, burada bir şey daha yapmak istiyorum.
Bu projeyi bitirmek için.
Bunu bir sonraki videoda yapalım.