ใกล้เข้ามาแล้ว เกือบเห็นเส้นชัยแล้ว
แขวนอยู่ในนั้น
ตอนนี้เรามีแฮชและจำนวนแล้วจึงสรุปฟังก์ชันนี้ในการสแกนรหัสผ่านรั่วที่นี่ในขณะที่เรากำลังวนซ้ำแต่ละรายการ
เราต้องการตรวจสอบอะไร?
เราต้องการตรวจสอบว่าถ้าแฮชนั้นเป็นเรื่องของแฮชที่นี่
เท่ากับแฮช
เพื่อตรวจสอบ, จำ, แฮช
ในการตรวจสอบคือส่วนท้ายของรหัสผ่านแฮชที่เราไม่เคยส่งให้ใครที่อยู่ในเครื่องของเราเอง
มันจึงดีและปลอดภัย
และเราจะตรวจสอบสิ่งนี้เพราะ API ส่งคืนรายการแฮชส่วนท้ายเหล่านี้มาให้เรา
ดังนั้นหากเข้ากันได้ดี ในกรณีนั้น ฉันต้องการให้คุณคืนการนับ
เลยอยากคืนว่ารหัสผ่านนี้รั่วมากี่ครั้งแล้ว?
มิฉะนั้นเพียงแค่กลับมา
ศูนย์.
อีกครั้ง ฉันทำได้เพราะมันจะออกจากลูปนี้ทุกครั้งที่เห็นคีย์เวิร์ด return
ในการตรวจสอบ pwned API ของฉัน ฉันจะเรียกใช้ฟังก์ชันนี้ ซึ่ง Intel จะดึงข้อมูลทั้งหมดนี้และส่งคืนจำนวนครั้งที่รหัสผ่านที่แฮชรั่วไหลออกมา
ดังนั้นเราจึงมีสิ่งสุดท้ายที่ต้องทำ
นั่นคือความสามารถในการพิมพ์ผลลัพธ์ของการคำนวณทั้งหมดเหล่านี้
ตอนนี้เรามาลบสิ่งนี้และสร้างฟังก์ชั่นหลัก
และหน้าที่หลักนี้จะได้รับอาร์กิวเมนต์ที่เราให้ไว้ตรงนี้ในบรรทัดคำสั่งของเรา
ดังนั้น เราจะนำเข้าโมดูล CIS อย่างที่คุณอาจเคยเห็นมาก่อน
และในที่นี้ เราจะมีฟังก์ชันหลักที่รับอาร์กิวเมนต์ ซึ่งเป็นรหัสผ่านที่เราต้องการตรวจสอบ
และสำหรับตอนนี้ เราจะผ่านที่นี่
แต่ที่ด้านล่างสุด เราจะเรียกฟังก์ชันหลัก
ด้วย CIS dot RV และยอมรับอาร์กิวเมนต์จำนวนเท่าใดก็ได้หลังจากที่เราทำ python สามตรวจสอบ pi ที่ผ่านมาของฉันแล้วเราก็ให้อาร์กิวเมนต์ทั้งหมดที่เราต้องการซึ่งเป็นรหัสผ่าน
เราจะเรียกใช้ฟังก์ชันแบบนี้
หน้าที่หลักนี้
สิ่งที่ต้องทำคือเราจะบอกรหัสผ่านในอาร์กิวเมนต์เพราะเราสามารถให้รหัสผ่านได้หลายอัน
เราจะวนรอบสิ่งนั้น
และเรากำลังจะมีรหัสผ่าน sha one
และการนับ มิฉะนั้นเราจะนับเพราะเราจะนับจากการนับการรั่วไหลของรหัสผ่าน
ดังนั้นเราจึงสามารถทำได้โดยทำการตรวจสอบ pwned api
และเราจะส่งรหัสผ่านที่เรากำลังตรวจสอบให้
และสิ่งที่เราจะทำก็คือภายในบล็อกนี้ สมมติว่ามีนับในกรณีนั้น ฉันต้องการให้คุณพิมพ์สตริง
F และสตริง F นี้จะบอกว่า
ที่.
รหัสผ่านที่เรากำลังวนซ้ำ
ถูกพบ.
นับกี่ครั้ง?
แล้วเราจะบอกว่า คุณน่าจะเปลี่ยน
รหัสผ่านของคุณ.
มิฉะนั้น.
ถ้านั่นหมายถึงไม่มีการนับ นั่นคือไม่มีแมตช์ แสดงว่าคุณทำได้ดี
เราสามารถพูดได้
ถ้าสตริง.
รหัสผ่าน.
ไม่พบ
ดำเนินการต่อ
นั่นเป็นรหัสผ่านที่ดี
คุณควรดำเนินการต่อ
คุณสบายดี
และสุดท้าย เพื่อความสนุก กลับมาจากฟังก์ชันนี้กัน
กลับ?
ทำได้แค่นั้นเอง
ถ้าผมเซฟไว้ มาดูกันว่านี่ให้อะไรเราบ้าง
ฉันจะพูด Python สาม
ตรวจสอบบัตรผ่านของฉันและขอเพียงแค่ตรวจสอบ
สวัสดี?
ฉันเข้าใจ.
สวัสดี
มันไม่สนุกที่จะสานต่อ แต่เรารู้ว่าสวัสดีเคยพบมาก่อน
ถูกต้อง.
ฉันหมายถึง นั่นเป็นรหัสผ่านง่ายๆ
เราควรจะได้รับสิ่งที่ดีที่นี่
ตอนนี้ ฉันต้องการลบการตอบสนองของการพิมพ์นี้ด้วย
เนื่องจากเราไม่ต้องการมันแล้ว คุณมองเห็นข้อผิดพลาดหรือไม่
อีกครั้ง นี่เป็นส่วนที่ค่อนข้างยุ่งยากสำหรับ Python ใช่ไหม
เป็นการเยื้องและสิ่งที่เราเคยเห็นมาก่อน
ดังนั้น คุณอยากเก่งในการดีบักโค้ดของคุณเอง และหาว่าเกิดอะไรขึ้นในกรณีนี้
เราสามารถไปทีละขั้นตอนผ่านโค้ดได้ แต่เราคิดว่า อืม เราไม่เคยทดสอบฟังก์ชันการนับนี้เลย
และถ้าเราดูตรงนี้ การเยื้องของเราจะคลาดเคลื่อนไปเล็กน้อย จริงไหม?
เรามี if check แต่เราจะคืนค่าศูนย์เสมอ
ผลตอบแทนนี้ควรเป็นเช่นนี้หลังจากลูป for
หลังจากที่เราตรวจสอบทุกอย่างแล้ว ก็ไม่พบสิ่งใดที่ตรงกัน
จากนั้นเราควรคืนค่าศูนย์
ดังนั้นถ้าฉันบันทึกและเรียกใช้อีกครั้ง
เอาล่ะ ตอนนี้มันใช้งานได้แล้ว
คุณสังเกตเห็นว่าข้อผิดพลาดเล็กน้อยเพียงเล็กน้อยอาจทำให้คุณได้ผลลัพธ์ที่แตกต่างไปจากเดิมอย่างสิ้นเชิง
ดังนั้นจึงเป็นการดีที่จะก้าวไปทีละขั้นและลองทำอะไรบางอย่างที่คุณรู้อยู่แล้วว่าได้ผล
และสิ่งสำคัญคือต้องใช้ทักษะการดีบักที่คุณจะพัฒนาตลอดหลักสูตรเพื่อลองและคิดออก
ตอนนี้ไม่มีโปรแกรมเมอร์คนใดที่จะเขียนโปรแกรมที่สมบูรณ์แบบได้ทันที
ส่วนใหญ่คุณกำลังพยายามคิดว่าเหตุใดคุณจึงได้รับข้อผิดพลาดนี้ เหตุใดจึงเกิดขึ้น
และนี่เป็นเพียงบางสิ่งที่คุณดีขึ้นและดีขึ้นเมื่อคุณเขียนโค้ด
ดังนั้นวิธีแก้ไขเพียงอย่างเดียวคือเขียนโค้ดต่อไป
หวังว่าตลอดหลักสูตรนี้ คุณจะได้เห็นข้อผิดพลาดบางอย่างที่ฉันทำในการแก้ไขข้อบกพร่องเหล่านั้น เพื่อให้คุณเริ่มใช้รูปแบบเหล่านี้เช่นกัน
อย่างไรก็ตามนี่เป็นเรื่องที่ยอดเยี่ยม
ในที่สุดสิ่งนี้ก็ใช้งานได้
มาลองกันอีกสองสามอย่าง
ลาก่อน แล้วก็พูดพล่อยๆ
ไม่เป็นไร.
ดูเหมือนว่าจะใช้งานได้เช่นกัน
นี่มันเจ๋งมาก.
ตัวตรวจสอบรหัสผ่านของเรากำลังทำงาน
ตอนนี้ฉันต้องการทำอีกอย่างหนึ่งที่นี่
เพื่อจบโครงการนี้
ลองทำกันในวิดีโอหน้า