Chào mừng trở lại.
Hãy tiếp tục xây dựng công cụ tuyệt vời của chúng tôi.
Chúng tôi có kiểm tra API ao của chúng tôi để chỉ chuyển đổi mật khẩu của chúng tôi thành SHA một.
Nhưng chúng tôi cần gửi cái này tới API.
API mật khẩu.
Vậy chúng ta có thể làm gì ở đây?
Điều đầu tiên chúng tôi muốn làm là nhớ rằng chúng tôi chỉ cần năm ký tự đầu tiên của mật khẩu hoặc mật khẩu đã băm để
chúng tôi có thể làm điều gì đó thú vị ở đây.
Chúng ta có thể nói năm ký tự đầu tiên.
Và cũng có những gì chúng tôi gọi là đuôi.
Vì vậy, chúng tôi sẽ lưu trữ năm ký tự đầu tiên và biến đầu tiên.
Và trong biến thứ hai, chúng tôi sẽ lưu trữ phần còn lại vì chúng tôi sẽ cần cả hai biến này
sau này.
Vì vậy, ở đây.
Chúng ta chỉ có thể sử dụng điều nhỏ nhặt tiện lợi mà Python cho phép chúng ta, đó là cú pháp
nhỏ hay ho này chỉ cần lấy từ đầu đến ký tự thứ năm.
Và sau đó cho phần thứ hai.
Các ký tự còn lại.
Vì vậy, bắt đầu từ chỉ mục thứ năm cho đến khi kết thúc, tốt đẹp và dễ dàng.
Và đây là điều mà chúng ta đã học trước đây.
Vì vậy, bây giờ chúng ta có năm ký tự đầu tiên và đuôi.
Và tại đây, bây giờ chúng tôi có thể thêm dữ liệu này vào dữ liệu API yêu cầu của mình để bây giờ tôi có thể gọi dữ liệu API yêu cầu của mình
và tại đây, hãy cung cấp cho nó năm ký tự đầu tiên và chỉ cần lưu trữ phản hồi tại đây.
Như vậy.
Bây giờ chúng ta hãy xem loại phản hồi mà chúng ta nhận được.
Vì vậy, tôi thực sự sẽ trả lời phản hồi ở đây.
Và để chúng tôi đảm bảo rằng chúng tôi đang làm đúng mọi thứ, hãy in ra năm ký tự đầu tiên và cả
phần đuôi để đảm bảo rằng mọi thứ đều hoạt động.
Nếu tôi chạy cái này.
Được rồi.
Có vẻ như tôi đang nhận được năm ký tự đầu tiên.
Có một khoảng trống ở đây, và sau đó là phần còn lại, và chúng tôi không gặp bất kỳ lỗi nào.
Có vẻ như phản hồi đang hoạt động, vì vậy chúng ta cũng hãy in phản hồi.
Và đảm bảo rằng điều đó cũng đang hoạt động.
Có vẻ như chúng tôi nhận được phản hồi là 200, nhưng chúng tôi vẫn không chắc chắn chính xác loại dữ liệu mà chúng tôi nhận được.
Chúng ta có thể làm gì ở đây?
Tôi muốn tìm hiểu thêm về dữ liệu mà chúng tôi trả về này.
Vì vậy, hãy tạo một chức năng khác ở đây.
Và hiện tại, chúng tôi sẽ chỉ gọi nó là phản hồi đã đọc.
Và chúng tôi sẽ chỉ cung cấp cho nó phản hồi mà chúng tôi nhận được.
Và ở đây, chúng ta hãy thử đọc phản hồi này.
Chúng tôi thực sự có thể thực hiện phản hồi in, chấm văn bản ở đây.
Bởi vì đó là một phản hồi API.
Vì vậy, lý tưởng nhất là chúng ta có thể đọc văn bản, hãy xem điều đó có tác dụng gì không.
Vì vậy, phản hồi trả lại này sẽ chỉ được đọc.
Đáp ứng như vậy.
Nếu tôi chạy cái này.
Này, nhìn này.
Đây là phản hồi của chúng tôi.
Như bạn có thể thấy, đó là rất nhiều mật khẩu được băm.
Có rất nhiều trong số họ.
Nó trông giống như một vài trăm.
Vì vậy, đây là những gì chúng tôi nhận được từ phản hồi của chúng tôi.
Bằng cách sử dụng phản hồi cho văn bản, chúng tôi nhận được tất cả các băm khớp với phần đầu của mật khẩu được băm của chúng tôi.
Rất tuyệt.
Những gì chúng tôi thực sự có thể làm.
Bạn thấy ở đây cách chúng tôi nhận được 24, ba một.
Và như thế.
Điều này cho bạn thấy thực sự những mật khẩu này đã bị hack bao nhiêu lần.
Điều đó khá tuyệt.
Vì vậy, lý tưởng nhất là chúng ta có thể lấy số đếm, xem có bất kỳ số nào khớp với đuôi của chúng ta hay không, bởi
vì bây giờ chúng ta có thể kiểm tra đuôi và cũng có thể in ra số lượng.
Vì vậy, thay vì có một chức năng phản hồi đọc, hãy có một nhận được.
Mật khẩu.
Rò rỉ.
Đếm hàm nhận các băm hoặc phản hồi và băm thực tế.
Để kiểm tra, đâu là mã băm mật khẩu của riêng chúng tôi mà chúng tôi cần kiểm tra.
Vì vậy, chúng tôi sẽ kiểm tra hàm băm này để kiểm tra và lặp lại tất cả các hàm băm.
Vì vậy, chúng tôi có thể làm điều gì đó một lần nữa.
Nifty với Python ở đây chúng ta có thể nói hàm băm bằng.
Và chúng ta có thể sử dụng một bộ tuple ở đây và chúng ta thực sự có thể hiểu một bộ tuple mà chúng ta đã thấy trước đây.
Tôi có thể nói phân chia dòng chấm.
Vì vậy, chúng tôi sẽ chia mọi thứ trong dòng, theo các cột này ở đây mà bạn có thể thấy.
Vì vậy, đó là phần đuôi của băm và số lần nó bị tấn công.
Vì vậy, chúng tôi sẽ chia nó theo cột.
Và sau đó chúng ta sẽ lặp lại và nói bốn dòng.
Vì vậy, đó là nơi xuất phát của dòng.
Bốn dòng trong hàm băm.
Chấm văn bản.
Bây giờ, nếu tôi để nó như thế này, điều này thực sự sẽ không hoạt động.
Và tôi sẽ chỉ cho bạn lý do tại sao trong giây lát.
Trên thực tế, chúng ta hãy làm điều đó ngay bây giờ.
Vì vậy, hãy xem những gì các băm in sẽ cung cấp cho chúng tôi.
Thay vì phản hồi Reid.
Chúng tôi sẽ chạy cái này ngay bây giờ.
Vì vậy, lấy tài khoản bị rò rỉ mật khẩu.
Và nếu tôi chạy, hãy xóa điều này.
Tôi nhận được một lỗi?
Chà, tôi gặp lỗi vì chúng tôi cũng phải thêm hàm băm để kiểm tra.
Vậy hash cần kiểm tra là gì?
Chà, đó là cái đuôi, phải không?
Phần đuôi của mật khẩu thực của chúng tôi.
Vì vậy, tôi sẽ thêm đuôi vào tham số thứ hai.
Lưu và chạy lại.
Được rồi, tôi nhận được phản hồi.
200 và tôi nhận được một đối tượng máy phát điện.
Đối tượng máy phát điện này, chúng tôi thực sự có thể lặp lại tỷ lệ.
Vì vậy, hãy xem điều gì sẽ xảy ra nếu tôi làm bốn.
Hãy nhớ rằng, chúng ta có băm và số đếm, vì vậy hãy thực hiện băm h cho hàm băm và đếm trong hàm băm vì hãy nhớ rằng chúng
ta đã chuyển đổi thành một bộ tuple có hàm băm và sau đó là số đếm.
Bởi vì chúng ta đang chia tách, nhớ không?
Vì vậy, nếu chúng ta làm điều này.
Hãy in từng cái và đếm.
Nếu tôi chạy cái này.
Hừ!
Tôi nhận được một lỗi.
Lỗi giá trị.
Không đủ giá trị để giải nén.
Mong đợi nó để rút ruột một.
Hừ!
Tại sao vậy?
Hãy chỉ in H và xem điều gì sẽ xảy ra.
Và xóa số lượng ngay bây giờ.
Hãy xóa nó và chạy lại.
Hừ!
Có vẻ như chúng tôi đã không phân chia đúng cách.
Mỗi mục là danh sách riêng của nó.
Vì vậy, chúng tôi thực sự phải sử dụng một cái gì đó được gọi là dòng phân chia ở đây trên chuỗi của chúng tôi.
Và như bạn có thể thấy.
Nó trả về một danh sách các dòng trong chuỗi.
Và nó bị phá vỡ ở ranh giới ranh giới.
Vì vậy, khi chúng ta thực sự thực hiện một vòng lặp bốn trên văn bản băm, nếu chúng ta cuộn lên, hãy xem liệu chúng ta có thể nhìn thấy nó không.
Không, nó không còn ở đó nữa.
Nhưng nếu chúng ta cuộn lên, chúng ta chỉ có một danh sách văn bản khổng lồ.
Lý tưởng nhất là trên mỗi dòng, chúng tôi chia nhỏ điều này để dòng này là tốt thay vì từng phần tử riêng lẻ, số
băm và số lượng thực tế.
Vì vậy, chúng ta chỉ cần thực hiện các đường chia chấm như thế này.
Nếu tôi lưu nó và chạy lại một lần nữa.
Tốt hơn rất nhiều.
Vì vậy, bây giờ chúng tôi có những gì chúng tôi muốn.
Một lần nữa chúng ta có thể quay lại những gì chúng ta có trước đây, đó là giá trị.
Và nếu chúng ta in H và đếm, chúng ta hãy lưu.
Chạy lại lần nữa.
Và điều đó tốt hơn rất nhiều.
Chúng tôi có từng mục riêng biệt.
Hãy tạm nghỉ và tiếp tục điều này trong video tiếp theo.