مرحبًا بعودتك.
لقد تعلمنا للتو عن Password API وكيف تسمح لنا واجهة برمجة التطبيقات هذه بعدم الثقة بأحد.
وهذا يعني أننا نثق في أنفسنا فقط وسنقدم فقط أجزاء من المعلومات التي نشعر بالراحة تجاهها
لواجهة برمجة التطبيقات حتى تعطينا استجابة ببعض البيانات التي يمكننا حسابها بعد ذلك على أجهزتنا
الخاصة التي هي افتراضيًا أكثر أمانًا .
لذا ما فعلناه هنا هو أنه بدلاً من إعطاء التجزئة الكاملة لكلمة المرور الخاصة بنا ، فإننا نعطي القليل
منها.
الأحرف الخمسة الأولى ، لديهم الآن ما يقرب من 600 مليون كلمة مرور في قاعدة البيانات الخاصة بهم والموقع الإلكتروني.
ربما نعرف الآن أننا جزء من عدة مئات من الأشخاص الذين لديهم تجزئة بدء مماثلة ، لكنهم لن يعرفوا
كلمة المرور الخاصة بنا أبدًا.
ولكن باستخدام بيانات الاستجابة هذه ، يمكننا الآن التحقق من التجزئة الكاملة لمعرفة ما إذا تم تأجيل كلمة
المرور أو اختراقها.
لذا فلنبدأ في كتابة برنامجنا ، لأنه من الناحية المثالية في هذه الاستجابة ، لدي الآن ربما عدة مئات من
قوائم هذه التجزئة التي يمكنني التحقق منها.
دعونا نفكر فيما نريد أن نفعله.
لذلك من الناحية المثالية ، لنفترض أن لدينا دالة ، وستكون هذه الوظيفة هي الطلب.
API.
البيانات ، وهو ما فعلناه هنا.
لذلك سننقل ذلك إلى الأسفل هنا بمجرد أن نكون مستعدين وهنا ، سنعطيه أحرف الاستعلام.
لذلك سنقوم بإعطائها هذه النسخة المجزأة من كلمة المرور الخاصة بنا.
لذلك ستكون هذه دالة سنمررها الآن.
لكن هذا سيطلب بياناتنا ويعطينا ردًا.
بعد هذه الاستجابة ، نريد بالفعل التحقق حتى يمكننا القول إننا نريد التحقق من فحص واجهة برمجة التطبيقات pwned
وهنا سنقدم كلمة المرور الخاصة بنا.
هذه هي كلمة المرور الفعلية الخاصة بنا في حالتنا ستكون كلمة المرور.
واحد اثنين ثلاثة.
وهنا نريد إجراء نوع من الفحص.
نريد أن نقول تحقق.
كلمة المرور.
إذا كان موجودًا في API.
إجابة.
من هنا.
حتى الآن ، سنمرر ذلك.
لذلك دعونا نعمل على أول واحد.
هذا هو طلب بيانات API.
لقد فعلنا بالفعل بعضًا من هذا هنا.
الصحيح.
سأقوم في الواقع بنقل هذا الرمز.
هنا في الأعلى.
تأكد من أن الحشو لدينا الآن هنا بدلاً من هذه القوة.
سأعطي في الواقع حرف الاستعلام الذي سنسميه عرض الوظيفة بحيث يكون ديناميكيًا.
ومرة أخرى ، سنطلب عنوان URL ، وسنتلقى الرد.
وهنا سنقوم بالتحقق.
سنقول إذا كانت حالة نقطة الرد لأن تذكر أنه يمكننا التحقق من ردنا إذا كانت الحالة 200 أو في هذه الحالة ، دعنا
نقول ، إذا كانت الحالة لا تساوي 200.
في هذه الحالة ، دعنا نثير خطأ.
لذا سأقول زيادة سنرتكب خطأ وقت التشغيل وسنقول ، حسنًا ، دعنا نستخدم سلسلة F وسنقول.
هواء.
الجلب.
وبعد ذلك سنمنحه رمز الحالة بحيث يكون حالة الاستجابة.
أوه ، وفي الواقع هذا هو رمز الحالة.
لذلك دعونا نقوم فقط برمز الحالة هنا وبعد ذلك سنقول تحقق فقط.
API وحاول مرة أخرى.
حسنًا ، يجب أن يكون هذا خطأنا إذا ارتكبنا خطأ.
دعونا فقط نختبر ذلك.
انا ذاهب الى فقط.
لنقم بواجهة برمجة تطبيقات غير موجودة.
لذلك قمت فقط بتشغيل بعض الثرثرة هنا.
إذا قمت بحفظ وتشغيل هذا.
حسنًا ، لا بد لي من تشغيل هذا الجزء من الكود.
لذلك دعونا فقط نطلب بيانات API وسيكون حرف الاستعلام.
واحد اثنين ثلاثة.
وتعلم ماذا؟
هذا سوف يبث سواء فعلت ذلك أم لا.
لذلك دعونا نفعل هذا لأنه ليس نسخة هاتش.
وفي الواقع ، حصلت على خطأ بيثون من النوع هنا يمكنه فقط ربط سلسلة نصية وليس صحيحة.
لذا يمكننا فقط تحويل هذا إلى سلسلة لأننا نتذكر أننا نضيفها إلى عنوان URL هنا.
مرة أخرى إذا قمنا بتشغيل هذا.
حسنًا ، انظر إلى ذلك.
لقد رفعنا خطأ وقت التشغيل.
لدينا خطأ وقت التشغيل.
خطأ في جلب 400.
تحقق من API وحاول مرة أخرى.
حسنًا ، هذا الجزء يعمل ، لكن في هذه الحالة ، إذا لم يكن لدينا هذا الخطأ
، دعنا نقول فقط أننا سنعيد الرد.
مرة أخرى ، نحن نكتب فقط وظائف صغيرة وبسيطة.
في هذه الحالة ، نريد فقط بيانات واجهة برمجة التطبيقات لطلبنا حتى نتمكن الآن من استخدامها في جميع أنحاء الكود الخاص بنا.
رائع.
الآن ، هذا الجزء التالي صعب بعض الشيء لأنه يتعين علينا تشغيل كلمة المرور الخاصة بنا من خلال خوارزمية SHA one.
لحسن الحظ ، لدى Python وحدة مضمنة لنا للقيام بذلك حتى نتمكن بالفعل من استيراد hash lib.
كما ترى ، إنها وحدة نمطية مضمنة ، لذا يمكنك قراءة المزيد عنها إذا أردت.
في حالتنا ، يمكننا إجراء تجزئة SHA1 كما فعلنا على ذلك الموقع باستخدام هذه المكتبة.
هنا.
ما سنفعله هو ، أولاً وقبل كل شيء ، أريد أن أكون قادرًا على تجزئة كلمة المرور الخاصة بي.
لذا دعنا نزيل الماضي هنا ونذكر كلمة مرور واحدة ويمكننا استخدام علامة التجزئة مثل هذا الهاش ليب دوت SHA واحد
، وهي خوارزمية التجزئة التي نريد استخدامها.
وسيكون هذا صعبًا بعض الشيء ، لكن يمكنك فقط قراءة الوثائق.
سأريكم فقط كيفية القيام بذلك.
في حالتنا ، يمكننا عمل كلمة مرور ونريد الترميز في UTF ثمانية.
وهو معيار جميل.
في الواقع ، أتعلم ماذا؟
اسمحوا لي أن أريكم ما يفعله هذا.
لذلك سأقول طباعة وسأقوم فقط بعمل كلمة مرور ورمز UTF ثمانية.
لذلك دعونا نفعل ذلك الآن.
في الوقت الحالي ، سأعلق على ذلك.
لذلك سأقوم باستدعاء Pwned API check وسنقوم بعمل واحد ، اثنان ، ثلاثة.
دعونا نوضح هذا.
سنقوم بحفظ وتشغيل هذا الجزء من التعليمات البرمجية.
حسنًا ، إنه مشفر.
ترى هذا B الصغير هنا في UTF ثمانية؟
سأريكم في الواقع ما يحدث عندما نزيل الترميز بعد ذلك.
بعد ذلك ، عندما نستخدم Hash lib SHA1.
لذا اسمحوا لي فقط بنسخ هذا.
إذا قمت بتشغيل هذا.
أحصل على كائن تجزئة SHA1.
الآن بعد هذا يمكننا أن نسمي النقطة السداسية النقطية هكذا.
وإذا قمت بتشغيل هذا.
همم.
حسنًا ، كيف يمكننا التحقق من هذا؟
حسنًا ، يمكننا الانتقال إلى الهاش ليب والبحث ببساطة عن الملخص السداسي.
لذلك هنا ، في أي وقت ، يمكنك أن تطلب منه خلاصة تسلسل البيانات ، بلاه ، بلاه ،
بلاه ، هضم سداسي.
لذلك هذا لا يفسر لنا أي شيء حقًا.
دعنا ننتقل إلى الجزء التالي والجزء التالي وهناك تذهب ، Hex Digest.
تقوم بإرجاع كائن سلسلة بطول مزدوج يحتوي فقط على أرقام سداسية عشرية.
هذا مجرد شيء يتعين علينا القيام به لتحويل هذا الكائن إلى هذه السلسلة السداسية العشرية.
الجزء التالي ، من أجل الاتفاق مع API ، هو تحويل كل هذا إلى أحرف كبيرة.
لذلك إذا قمت بعمل الجزء العلوي هنا.
وأنا أحفظ هذا وتشغيله مرة أخرى.
كل شيء بأحرف كبيرة ، تمامًا كما رأينا عندما نظرنا إلى شا واحد.
لذلك هذا مجرد شيء ، مرة أخرى ، لا تحتاج حقًا إلى معرفته.
كل ما عليك فعله هو البحث في محرك بحث Google ومعرفة كيفية استخدام هذا بالفعل.
الآن ، اسمحوا لي أن أريكم ما يحدث عندما لا نستخدم ترميز UTF ثمانية.
لذلك إذا قمت بذلك فقط بهذا الشكل وقمت بتشغيله.
ترى أن؟
لدي خطأ.
يجب تشفير كائنات Unicode قبل التجزئة.
إذن فهو يعطيك خطأ لطيفًا ويمكننا ترميزه باستخدام UTF ثمانية على هذا النحو.
لذلك هذا هو المعيار فقط.
مرة أخرى ، لا شيء مجنون للغاية.
يمكنك القراءة عن الترميز و UTF ثمانية إذا كنت تريد ذلك بنفسك.
المفتاح هنا هو أنه في نهاية الأمر لدينا كلمة مرور SHA واحدة يمكننا إرسالها.
لذا اسمحوا لي فقط بنسخ كل هذا.
ذاهب لإزالة الطباعة.
وهنا ، لدينا كلمة مرور SHA واحدة.
رائع.
حتى الآن ، دعنا نعيد فقط SHA واحد.
كلمة المرور.
وإذا قمت بتشغيل هذا.
حسنًا ، يبدو أن الكود الخاص بنا يعمل.
نحن لا نطبع أي شيء ، ولكن نأمل.
نحصل على كلمة المرور هذه.
الآن في الفيديو التالي ، أريد أن أحاول بالفعل إرسال هذا إلى واجهة برمجة التطبيقات الخاصة بنا وأرى نوع الاستجابة التي نحصل
عليها.
لنفعل ذلك.
خذ استراحة.
سأراك في المرحلة التالية.