Pekala, güvenli parola denetleyicimizi oluşturmak için ilk adımımıza geçelim.
Burada bir çek ve pasaport dosyam var.
Siz de aynısını yapabilirsiniz.
Terminalim de tam şurada.
Yapmak istediğimiz şey başlangıçta requests modülünü içe aktarmaktır.
Eğer yapmadıysanız, o zaman istekler modülünü yükleyebilirsiniz.
Talep modülü bir talepte bulunmamıza olanak tanıyacak.
Unutmayın, gerçek tarayıcı olmadan bir tarayıcıya sahip olmak gibi bir şey.
Bir tarayıcımız varmış gibi manuel olarak bir şey talep edebiliriz ve bazı verileri geri alırız.
Dolayısıyla, istek modülünü parola API'si ile kullanabilmemizin yolu, size ne olduğunu söyleyeceğim
parola API URL'sine sahip olabilmemizdir.
Bu https.
Colin slash slash API post şifreleri.
Nokta com.
Ve sonra ona bir aralık eğik çizgi veriyoruz.
Burası da şifreyi verdiğimiz yer.
Yani artı yapabiliriz.
Ve şimdilik yapalım.
Şifre.
Bir, iki, üç.
Yani kullanacağımız URL bu.
Bunu böyle biraz daha küçültelim.
Şimdi burada, istekleri yaparak bir yanıt alacağız.
Nokta al.
Bunu yazalım ve ne olacağını görelim.
Bu programı kaydedip çalıştırırsam ve hatırlarsanız, henüz şifreleri yazma yeteneğimiz yok, bu yüzden sadece
dosyayı çalıştıralım.
Tamam, bir şey bulduk ama bir hata gibi görünüyor.
Çünkü https yaptım.
Ne aptalım.
Ama yine de size bunu göstermek istiyorum.
Evet, tam burası.
Hataları okuyabiliyorum ve geçersiz bir şema gibi görünüyor.
Kuyu https için bağlantı adaptörü yok.
Eğer bunu tekrar çalıştırırsak.
Tamam.
İşe yaramış gibi görünüyor.
Hata yok.
Ancak neden bu kadar baskı tepkisi aldığımızı görmek için bunu yazdıralım.
Ve bunu çalıştıracağım.
Ve 400 yanıt aldık.
Hmm.
Şimdi bir yanıt ya da 400 iyi değil.
Bu genellikle yetkisiz olduğu veya API'de bir sorun olduğu anlamına gelir.
Şimdi bu yanıt kodları, kursun Web geliştirme bölümünde ele alacağımız bir konudur.
Ama bu sadece 400'ün iyi olmadığı anlamına geliyor.
200'lük bir yanıt istiyoruz.
200 demek.
Tamam.
Bunun nedeni de API'nin gerçekte bu şekilde çalışmamasıdır.
Burada sadece bir şifre verdiğimizi görüyorsunuz.
Ancak bu API'nin çalışma şekli hashing adı verilen bir şey kullanıyor.
Şimdi, bu ne anlama geliyor?
Bu dersten sonra bir de bonus ders ekleyeceğim, böylece hashing hakkında biraz daha fazla şey öğrenebilirsiniz.
Ama burada linkini vereceğim bir web sitesi var ve bunu biraz daha büyütelim.
Umarım bunun bir SHA1 hash üreteci olduğunu görebilirsiniz.
Şimdi bir parolayı karma hale getirin.
Bu her zaman yapmanız gereken bir şeydir.
Diyelim ki bir kullanıcının parolasını kaydediyorsunuz.
Bir veritabanına.
Bir kullanıcının parolasını asla düz metin olarak adlandırdığımız şekilde saklamamalısınız.
Şifre tam olarak bu.
Bunun yerine, hash it adı verilen bir şey yapmak istiyoruz.
Yani, anlamsız hale getirmek için bir hashing algoritmasından geçirin.
Burada şifre iki, bir, iki, üç yaptığımda ve oluştur'a tıkladığımda ve aşağı kaydırdığımda.
Bu, karma paroladır.
Bu parolayı değiştirdiğimde bunun da değiştiğine dikkat edin.
Ancak buradaki kilit nokta ve bu bonus videoda bahsedeceğimiz şey, hashing'in tek yönlü bir işlev
olduğudur.
Pek çok farklı hash algoritması var, boş beşler var, SHA iki, beş, altı var,
biz SHA bir kullanıyoruz çünkü bu API bunu kullanıyor ve SHA bir aslında sadece hash yapıyor.
Bu, şifrenin bu anlamsız çıktısını yapan bir işlev olan bir algoritmadır.
Bir, iki, üç.
Ancak parola 1'den 3'e kadar kaç kez oluşturursak oluşturalım, her zaman aynı hash olacaktır.
Bu şekilde, birisinin bir parola yazıp yazmadığını kontrol edebiliriz ve elimizde bir parolanın karma sürümü
ve diyelim ki bir veritabanı varsa, bu parolanın karma sürümünü veritabanıyla karşılaştırabiliriz.
Hash edilmiş şifre.
Yine, burada kafanız çok karışmasın.
Umarım o bonus videoda bu konuyu biraz daha ele alırız.
Ancak kilit nokta, bu API'nin mümkün olduğunca güvenli olmasını istediğimiz için, gerçek şifremizi
tel üzerinden göndermek istemememizdir.
Bunun yerine, parolamızın bu karma sürümünü göndermek istiyoruz.
Bunu kopyalayıp buraya koyarsam, API'ye göndermemiz gereken şey bu olur.
Ama sorun şu.
Bu yine de süper güvenli değildir çünkü herhangi biri şimdi gelip yazabilir ve tahmin etmeye devam edebilir,
tahmin etmeye devam edebilir, tahmin etmeye devam edebilir ve sonunda şifre 1 ila 3'e basabilir ve oh, bu hash bu hash ile tamamen aynıdır.
Böylece bunun bizim şifremiz olduğunu bilecekler.
Bu API, K anonimlik adı verilen bir teknik kullanıyor ve bu aslında Google, Facebook, Netflix, Amazon gibi büyük
şirketlerin kullandığı modern bir teknik.
K anonimliği, birisinin hakkımızda bilgi almasına rağmen kim olduğumuzu bilmemesini sağlar.
Bu nasıl çalışıyor?
Bu arada, bu aslında çok kullanılan bir tekniktir, özellikle de kişisel verilerin şirketler için kullanılmasının
hoş karşılanmadığı günümüzde.
Yani ideal olarak kişisel bilgilerinizi şirketlere vermek istemezsiniz.
Bu nedenle, güvenlik ve gizliliğe önem veren bazı şirketler bu anonimliği sizi izlemek için kullanır, ancak yine de kim olduğunuzu
bilmezler.
Şimdi, bunun çalışma şekli.
Hash şifremizin sadece ilk beş karakterini vermemizdir.
Yani bir, iki, üç, dört, beş.
Yani bunu kaldırırsam, bu API'nin yapacağı şey, sızdırılan tüm şifrelerin bir listesine sahip olmaktır.
Ancak, tüm bu parolalar SHA one algoritması ile karma hale getirilir.
Böylece tüm bu parolaların bulunduğu veritabanına bakacak ve bununla eşleşen ilk beş karaktere sahip tüm
karma parolaları seçecektir.
Bu şekilde, yanıtla birlikte, buna sahip olan hashlenmiş tüm parolaları alacağız, böylece
bu yanıtı aldığımızda, hash işlevinin geri kalanını kontrol edebiliriz.
Bu şekilde, bu API hiçbir zaman tam hash'imizi bilemeyecek ve dolayısıyla hiçbir zaman şifremizi tahmin edemeyecektir.
Sadece yüzlerce şifreyi eşleştirebilecek küçük bir hash fonksiyonuna sahip olduğumuzu bilecekler.
Ne kadar havalı değil mi?
Yani bunu gerçekten kaydedip çalıştırırsam.
200'lük bir yanıt alıyorum.
Harika.
Tamam.
Biraz ara verelim, hashing hakkında biraz daha bilgi edinelim ve bir sonraki videoda görüşmek üzere.
Güle güle.