Welkom terug.
We hebben net geleerd over de wachtwoord-API en hoe deze API ons in staat stelt niemand te vertrouwen.
Dat wil zeggen, we vertrouwen alleen onszelf en we geven alleen de stukjes informatie die we prettig
vinden aan de API, zodat deze ons een antwoord geeft met enkele gegevens die we vervolgens kunnen berekenen op
onze eigen machines die hypothetisch veiliger zijn .
Dus wat we hier hebben gedaan, is dat in plaats van de hele hash van ons wachtwoord te geven, we er gewoon een klein beetje van
geven.
De eerste vijf tekens hebben nu bijna zeshonderd miljoen wachtwoorden in hun database.
En de website weet nu misschien gewoon dat we deel uitmaken van enkele honderden mensen die een vergelijkbare starthash hebben,
maar ze zullen ons wachtwoord nooit weten.
Maar met deze responsgegevens kunnen we nu onze volledige hash controleren om te zien of het wachtwoord ooit is geopend of
ooit is gehackt.
Dus laten we beginnen met het schrijven van ons programma, want idealiter heb ik in dit antwoord nu misschien enkele
honderden lijsten van deze hashes die ik kan controleren.
Laten we nadenken over wat we willen doen.
Dus idealiter hebben we, laten we zeggen, een functie en deze functie zal het verzoek zijn.
API.
Gegevens, dat is wat we hier hebben gedaan, dus we zullen dat hierheen verplaatsen zodra we klaar zijn en
hier zullen we het de Quarrie-tekens geven.
Dus dat is dat we het deze gehashte versie van ons wachtwoord gaan geven.
Dus dit wordt een functie die we voorlopig even doorgeven.
Maar dit gaat onze gegevens opvragen en ons een reactie geven.
Vervolgens willen we met dit antwoord eigenlijk controleren, zodat we kunnen zeggen dat we de vijver-API-controle willen controleren en
hier zullen we ons wachtwoord geven.
Dat is ons daadwerkelijke wachtwoord, in ons geval is dat wachtwoord één, twee, drie.
En hier willen we een soort controle doen, we willen zeggen controle.
Wachtwoord als het in API bestaat.
Antwoord.
Vanaf hier.
Dus voorlopig laten we dat maar over.
Dus laten we werken aan de eerste die API-gegevens opvragen is.
We hebben hier al een deel van gedaan.
Rechts?
Ik ga deze code eigenlijk verplaatsen.
Hier boven.
Zorg ervoor dat we nu de opvulling hier hebben in plaats van deze sterkte, ik zal eigenlijk het vraagteken geven waarmee
we de functie zullen aanroepen, zodat deze dynamisch is.
En nogmaals, we zullen vragen dat uw URL het antwoord zal hebben en hier zullen we een controle
uitvoeren, we zullen zeggen of de status van de reactiepunt is, want onthoud, we kunnen onze reactie controleren als de status tweehonderd is of in dit geval ,
laten we zeggen, als de status niet gelijk is aan tweehonderd.
Laten we in dat geval gewoon een fout maken.
Dus ik zeg verhogen we zullen een runtime-fout maken en we zullen zeggen, nou, laten we een F-tekenreeks gebruiken en we zullen zeggen.
Fout.
Ophalen, en dan geven we het de status quo.
Dus dat is respons, die status.
En eigenlijk is dit de statuscode, dus laten we hier de statuscode doen en dan zeggen we gewoon controleren.
De API en probeer het opnieuw.
Oké, dus dit zou onze lucht moeten zijn als we een fout maken.
Laten we dat maar eens testen.
Ik ga gewoon een API doen die niet bestaat.
Dus ik heb hier maar wat gebrabbel geschreven.
Als ik dit opsla en uitvoer.
Welnu, ik moet dit stuk code daadwerkelijk uitvoeren, dus laten we gewoon API-gegevens opvragen en het vraagteken
wordt.
Een twee drie.
En weet je wat, dit wordt uitgezonden over of ik dat doe of niet.
Dus laten we dit gewoon doen, want het is niet de harde versie.
En ik krijg eigenlijk een python-fout van het type fout kan alleen string samenvoegen, niet Ent. , dus we kunnen dit gewoon omzetten in
een sterkte, want onthoud, we voegen het hier toe.
Nogmaals, als we het hier over hadden.
Oké, kijk eens aan, we hebben een runtime-fout gemeld.
We hebben een runtime er eh die vierhonderd haalt, controleer de API en probeer het opnieuw.
Oké, dus dit deel werkt.
Maar in dit geval, als we die lucht niet hebben, laten we zeggen dat we het antwoord opnieuw zullen retourneren, we schrijven in dit
geval alleen kleine, eenvoudige functies, we willen alleen API-gegevens opvragen, zodat we nu kunnen gebruiken het
in onze code.
Geweldig.
Dit volgende deel is een beetje lastig omdat we ons wachtwoord door het SHA one-algoritme moeten laten lopen.
Gelukkig heeft Python een ingebouwde module waarmee we dit kunnen doen, zodat we hashlip daadwerkelijk kunnen importeren.
Zoals je kunt zien, is het een ingebouwde module, dus je kunt er meer over lezen als je wilt.
In ons geval zijn we in staat om een show over harding te doen zoals we deden op onze website met deze bibliotheek.
Wat we hier gaan doen, is allereerst dat ik mijn wachtwoord wil kunnen hashen, dus laten we het
verleden hier verwijderen en zeggen sha één wachtwoord en we kunnen de hash live gebruiken zoals deze hash lib dot sha één,
het hash-algoritme dat we willen gebruiken.
En dit wordt een beetje lastig, maar je kunt gewoon de documentatie lezen.
Ik zal je gewoon laten zien hoe je het moet doen.
In ons geval kunnen we een wachtwoord doen en we willen coderen in UTF acht.
Wat eigenlijk vrij standaard is, weet je wat, ik zal je laten zien wat dit doet.
Dus ik ga zeggen print en ik doe gewoon wachtwoord en code UTF acht.
Dus laten we dat maar even doen.
Voor nu.
Ik ga daar commentaar op geven.
Dus ik ga LB API-controle aanroepen en we doen een, twee, drie.
Laten we dit punt wissen om dit stukje code op te slaan en uit te voeren.
Oké, het is gecodeerd, je ziet deze kleine bij hier in UTF acht, ik zal je laten zien wat
er gebeurt als we de codering hierna verwijderen.
Vervolgens, wanneer we de hash Leyb Sean gebruiken.
Dus laat ik dit maar kopiëren.
Als ik dit gewoon doe.
Ik krijg een sha one hash-object.
Nu, hierna kunnen we Dot Hecks Digest zo noemen en als ik dit doe.
Hmmm, hoe kunnen we dit controleren?
We kunnen gaan slapen en gewoon zoeken naar Hecks Digest.
Dus hier kun je op elk moment vragen om de samenvatting van de aaneenschakeling van de gegevens, bla, bla,
bla, hex digest, dus dat verklaart niet echt iets voor ons.
Laten we gewoon naar het volgende deel gaan en het volgende deel en ze gaan Hecks Digest.
Het retourneert een string-object van double leth dat alleen hexadecimale cijfers bevat.
Dit is gewoon iets dat we moeten doen om dit object om te zetten in deze hexadecimale string.
Het volgende deel om akkoord te gaan met de API is om dit alles om te zetten in hoofdletters.
Dus als ik het hier doe.
En ik sla dit op en voer dit opnieuw uit, alles is in hoofdletters, net zoals we zagen toen we er naar keken.
Dus dit is gewoon iets dat, nogmaals, je niet echt hoeft te weten.
Je hoeft alleen maar te Googlen en te zien hoe je dit daadwerkelijk kunt gebruiken.
Laat me je nu laten zien wat er gebeurt als we UTF acht en code niet gebruiken.
Dus als ik het zo doe en dit voer.
Je ziet dat ik lucht krijg.
De Unicode-objecten moeten worden gecodeerd voordat ze worden gehasht, dus het geeft je eigenlijk een mooie fout en als we gewoon
kunnen coderen met UTF acht op die manier.
Dit is dus gewoon de standaard.
Nogmaals, niets is te gek.
U kunt codering lezen en als u wilt alleen.
De sleutel hier is dat we aan het einde een Charr hebben, een wachtwoord dat we kunnen verzenden.
Dus laat me dit allemaal kopiëren.
Ik ga de print verwijderen.
En hier hebben we ons Sean-wachtwoord, geweldig.
Dus voor nu, laten we deze Shahd gewoon teruggeven.
Wachtwoord.
En als ik dit uitvoer.
Het lijkt erop dat onze code werkt, we drukken niets af, maar hopelijk.
We krijgen deze show nu in de volgende video, ik wil eigenlijk proberen dit naar onze API te sturen
en kijken wat voor soort reactie we krijgen.
Laten we dat doen.
Neem een pauze.
Ik zie je in de volgende.