Chào mừng trở lại.
Chúng tôi vừa tìm hiểu về API mật khẩu và cách API này cho phép chúng tôi không tin tưởng ai.
Có nghĩa là, chúng tôi chỉ tin tưởng vào bản thân và chúng tôi sẽ chỉ cung cấp các bit thông tin mà chúng tôi
cảm thấy thoải mái cho API để nó cung cấp cho chúng tôi phản hồi với một số dữ liệu mà sau đó chúng tôi có thể tính toán
trên máy của chúng tôi, theo giả thuyết là an toàn hơn .
Vì vậy, những gì chúng tôi đã làm ở đây là thay vì cung cấp toàn bộ hàm băm của mật khẩu của chúng tôi, chúng tôi chỉ cung cấp một chút
về nó.
Năm ký tự đầu tiên, bây giờ họ có gần 600 triệu mật khẩu trong cơ sở dữ liệu và trang web của họ.
Bây giờ có thể chỉ cần biết rằng chúng tôi là một phần của hàng trăm người có băm bắt đầu tương tự, nhưng họ sẽ không
bao giờ biết mật khẩu của chúng tôi.
Nhưng với dữ liệu phản hồi này, giờ đây chúng tôi có thể kiểm tra toàn bộ hàm băm của mình để xem liệu mật khẩu đã từng bị hoãn hoặc đã
từng bị tấn công hay chưa.
Vì vậy, chúng ta hãy bắt đầu viết chương trình của chúng ta, bởi vì lý tưởng nhất là trong câu trả lời này, bây giờ tôi có thể có
hàng trăm danh sách các băm này mà tôi có thể kiểm tra.
Hãy nghĩ về những gì chúng ta muốn làm.
Vì vậy, lý tưởng nhất là chúng ta có một hàm, và hàm này sẽ là yêu cầu.
API.
Dữ liệu, đó là những gì chúng tôi đã làm ở đây.
Vì vậy, chúng tôi sẽ chuyển nó xuống đây khi chúng tôi đã sẵn sàng và ở đây, chúng tôi sẽ cung cấp cho nó các ký tự truy vấn.
Vì vậy, đó là chúng tôi sẽ cung cấp cho nó phiên bản mật khẩu đã băm này của chúng tôi.
Vì vậy, đây sẽ là một hàm mà bây giờ chúng ta sẽ chỉ vượt qua.
Nhưng điều này sẽ yêu cầu dữ liệu của chúng tôi và cung cấp cho chúng tôi phản hồi.
Tiếp theo với phản hồi này, chúng tôi thực sự muốn kiểm tra để có thể nói rằng chúng tôi muốn kiểm tra kiểm tra API pwned và tại
đây, chúng tôi sẽ cung cấp mật khẩu của mình.
Đó là mật khẩu thực tế của chúng tôi trong trường hợp của chúng tôi sẽ là mật khẩu.
Một hai ba.
Và ở đây chúng tôi muốn thực hiện một số loại kiểm tra.
Chúng tôi muốn nói kiểm tra.
Mật khẩu.
Nếu nó tồn tại trong API.
Phản ứng.
Từ trên đây.
Vì vậy, bây giờ, chúng tôi sẽ chỉ vượt qua điều đó.
Vì vậy, chúng ta hãy làm việc trên cái đầu tiên.
Đó là dữ liệu API yêu cầu.
Chúng tôi đã thực hiện một số điều này ở đây.
Đúng.
Tôi thực sự sẽ di chuyển mã này.
Trên này này.
Hãy chắc chắn rằng chúng ta có phần đệm bây giờ ở đây thay vì sức mạnh này.
Thực sự tôi sẽ cung cấp cho ký tự truy vấn mà chúng tôi sẽ gọi là chiều rộng của hàm để nó động.
Và một lần nữa, chúng tôi sẽ yêu cầu URL, chúng tôi sẽ có phản hồi.
Và ở đây chúng tôi sẽ kiểm tra.
Chúng tôi sẽ nói nếu trạng thái dấu chấm phản hồi vì hãy nhớ rằng, chúng tôi có thể kiểm tra phản hồi của mình nếu trạng thái là 200 hoặc trong
trường hợp này, giả sử, nếu trạng thái không bằng 200.
Trong trường hợp đó, chúng ta hãy nêu ra một lỗi.
Vì vậy, tôi sẽ nói rằng raise, chúng ta sẽ gặp lỗi thời gian chạy và chúng ta sẽ nói, hãy sử dụng chuỗi F và chúng ta sẽ nói.
Hàng không.
Đang tìm nạp.
Và sau đó chúng tôi sẽ cung cấp cho nó mã trạng thái để nó là trạng thái phản hồi.
Ồ, và thực ra đây là mã trạng thái.
Vì vậy, hãy chỉ làm mã trạng thái ở đây và sau đó chúng tôi sẽ chỉ nói kiểm tra.
API và thử lại.
Được rồi, vì vậy đây sẽ là lỗi của chúng tôi nếu chúng tôi mắc sai lầm.
Hãy chỉ kiểm tra điều đó ra.
Tôi sẽ chỉ.
Hãy làm một API không tồn tại.
Vì vậy, tôi chỉ chạy một số vô nghĩa ở đây.
Nếu tôi lưu và chạy cái này.
Tôi thực sự phải chạy đoạn mã này.
Vì vậy, hãy chỉ làm dữ liệu API yêu cầu và ký tự truy vấn sẽ như vậy.
Một hai ba.
Và bạn biết những gì?
Điều này sẽ được phát sóng cho dù tôi có làm điều đó hay không.
Vì vậy, chúng ta hãy chỉ làm điều này vì nó không phải là phiên bản Hatch.
Và tôi thực sự nhận được một lỗi python kiểu ở đây chỉ có thể nối chuỗi không phải int.
Vì vậy, chúng tôi chỉ có thể chuyển đổi nó thành một chuỗi vì hãy nhớ rằng chúng tôi đang thêm nó vào URL ở đây.
Một lần nữa nếu chúng tôi chạy điều này.
Được rồi, nhìn này.
Chúng tôi đã phát sinh lỗi thời gian chạy.
Chúng tôi có một lỗi thời gian chạy.
Lỗi khi tìm nạp 400.
Kiểm tra API và thử lại.
Được rồi, vì vậy phần này đang hoạt động, nhưng trong trường hợp này, nếu chúng tôi không gặp lỗi đó, hãy
chỉ nói rằng chúng tôi sẽ trả lại phản hồi.
Một lần nữa, chúng tôi chỉ viết các hàm nhỏ, đơn giản.
Trong trường hợp này, chúng tôi chỉ muốn dữ liệu API yêu cầu của mình để bây giờ chúng tôi có thể sử dụng nó trong suốt mã của mình.
Đáng kinh ngạc.
Bây giờ, phần tiếp theo này hơi phức tạp vì chúng ta phải chạy mật khẩu của mình thông qua thuật toán SHA một.
May mắn thay, Python có một mô-đun được tích hợp sẵn để chúng tôi thực hiện việc này, vì vậy chúng tôi có thể thực sự thực hiện nhập lib băm.
Như bạn có thể thấy, nó là một mô-đun được tích hợp sẵn, vì vậy bạn có thể đọc thêm về nó nếu bạn muốn.
Trong trường hợp của chúng tôi, chúng tôi có thể thực hiện băm SHA1 giống như chúng tôi đã làm trên trang web đó với thư viện này.
Ở đây.
Những gì chúng tôi sẽ làm, trước hết, tôi muốn có thể băm mật khẩu của mình.
Vì vậy, chúng ta hãy xóa quá khứ ở đây và nói một mật khẩu và chúng ta có thể sử dụng hash lib như hash lib dot
SHA này, đó là thuật toán băm mà chúng tôi muốn sử dụng.
Và điều này sẽ hơi phức tạp, nhưng bạn có thể chỉ cần đọc tài liệu.
Tôi sẽ chỉ cho bạn cách làm điều đó.
Trong trường hợp của chúng tôi, chúng tôi có thể tạo mật khẩu và chúng tôi muốn mã hóa trong UTF tám.
Đó là khá tiêu chuẩn.
Trên thực tế, bạn biết những gì?
Hãy để tôi chỉ cho bạn những gì điều này làm.
Vì vậy, tôi sẽ nói in và tôi sẽ chỉ nhập mật khẩu và mã UTF tám.
Vì vậy, chúng ta hãy làm điều đó ngay bây giờ.
Còn bây giờ, tôi sẽ bình luận điều đó.
Vì vậy, tôi sẽ gọi kiểm tra API Pwned và chúng tôi sẽ thực hiện một, hai, ba.
Hãy làm rõ điều này.
Sẽ lưu và chạy đoạn mã này.
Được rồi, nó đã được mã hóa.
Bạn có thấy chữ B nhỏ này ở đây trong UTF 8 không?
Tôi sẽ thực sự cho bạn thấy điều gì sẽ xảy ra khi chúng tôi xóa ENCODE sau đó.
Tiếp theo, khi chúng ta sử dụng hash lib SHA1.
Vì vậy, hãy để tôi chỉ cần sao chép điều này.
Nếu tôi chỉ chạy cái này.
Tôi nhận được một đối tượng băm SHA1.
Bây giờ sau điều này, chúng ta có thể gọi thông báo dot hex như vậy.
Và nếu tôi chạy cái này.
Hừ!
Chà, làm thế nào chúng ta có thể kiểm tra điều này?
Chà, chúng ta có thể chuyển đến hash lib và chỉ cần tìm kiếm thông báo hex.
Vì vậy, tại đây, tại bất kỳ thời điểm nào, bạn có thể yêu cầu nó cung cấp thông báo về việc nối dữ
liệu, blah, blah, blah, hex.
Vì vậy, điều đó không thực sự giải thích bất cứ điều gì cho chúng tôi.
Chúng ta hãy chuyển sang phần tiếp theo và phần tiếp theo và bạn hãy bắt đầu, Hex Digest.
Nó trả về một đối tượng chuỗi có độ dài gấp đôi chỉ chứa các chữ số thập lục phân.
Đây chỉ là một cái gì đó mà chúng ta cần làm để chuyển đổi đối tượng này thành chuỗi thập lục phân này.
Phần tiếp theo, để đồng ý với API, là chuyển đổi tất cả những điều này thành chữ hoa.
Vì vậy, nếu tôi làm trên ở đây.
Và tôi lưu và chạy lại.
Mọi thứ đều được viết hoa, giống như chúng ta đã thấy khi nhìn vào Sha.
Vì vậy, đây chỉ là một cái gì đó, một lần nữa, bạn không thực sự cần biết.
Bạn chỉ cần có thể Google xung quanh và xem cách thực sự sử dụng nó.
Bây giờ, hãy để tôi chỉ cho bạn điều gì sẽ xảy ra khi chúng ta không sử dụng UTF tám ENCODE.
Vì vậy, nếu tôi chỉ làm nó như thế này và tôi chạy nó.
Bạn thấy điều đó?
Tôi nhận được một lỗi.
Các đối tượng Unicode phải được mã hóa trước khi băm.
Vì vậy, nó thực sự mang lại cho bạn một lỗi khá hay và chúng ta có thể mã hóa nó bằng cách sử dụng UTF tám như vậy.
Vì vậy, đây chỉ là tiêu chuẩn.
Một lần nữa, không có gì quá điên rồ.
Bạn có thể đọc thêm về mã hóa và UTF tám nếu bạn muốn một mình.
Chìa khóa ở đây là cuối cùng chúng ta có một mật khẩu SHA duy nhất mà chúng ta có thể gửi.
Vì vậy, hãy để tôi chỉ sao chép tất cả những điều này.
Sắp xóa bản in.
Và tại đây, chúng tôi sẽ có một mật khẩu SHA của chúng tôi.
Đáng kinh ngạc.
Vì vậy, hiện tại, chúng ta hãy trả lại SHA này.
Mật khẩu.
Và nếu tôi chạy cái này.
Có vẻ như mã của chúng tôi đang hoạt động.
Chúng tôi không in bất cứ thứ gì, nhưng hy vọng.
Chúng tôi đang nhận được một mật khẩu này.
Bây giờ trong video tiếp theo, tôi thực sự muốn thử và gửi cái này tới API của chúng tôi và xem loại phản hồi nào mà chúng tôi
nhận được.
Hãy làm điều đó.
Nghỉ ngơi một lát.
Hẹn gặp lại các bạn trong phần tiếp theo.