我们已经很接近了, 我几乎可以看到终点线了｡
就这么撑着｡
现在我们有了哈希值和计数, 这样我们就可以完成这个函数, 在这里扫描密码泄漏, 因为我们在循环每个项目｡
我们要检查什么？
我们想检查一下这个哈希值是否就是哈希值的故事.
等于哈希｡
查, 记, 哈希｡
要检查的是我们的哈希密码的尾部, 我们从来没有发送给任何人, 这是在我们自己的机器上｡
所以很安全｡
我们要检查一下, 因为API返回了一个带尾哈希的列表.
如果匹配良好, 在这种情况下, 我希望你返回计数｡
那么我想回报一下这个密码已经泄露了多少次了？
否则就退货｡
零｡
同样, 我可以这样做, 因为只要它看到return关键字, 它就会退出这个循环｡
现在在我的pwned API检查中, 我将运行这个函数, 英特尔将获取所有这些信息,
并返回哈希密码被泄露的次数｡
所以我们还有最后一件事要做｡
这就是实际打印出所有这些计算结果的能力｡
现在我们先删除它, 然后创建一个main函数｡
这个主函数将接收我们在命令行中给予的参数｡
因此, 我们将导入CIS模块, 正如您之前可能看到的那样｡
在这里, 我们有一个主函数来接收参数, 也就是我们要检查的密码｡
现在, 我们就从这里过去｡
但在底部, 我们将调用main函数｡
用CIS, 点RV, 接受任意数量的参数, 在我们做了python三次检查之后, 我的过去, pi,
然后我们给予它所有我们想要的参数, 也就是密码｡
所以我们要像这样运行这个函数｡
这个主要功能｡
它所要做的就是在参数中输入密码因为我们可以给予它多个密码.
我们将循环遍历它｡
我们将有一个sha一个密码｡
和一个计数, 或者我们只进行计数, 因为我们将从获取密码泄漏计数中接收计数｡
因此, 我们可以通过执行pwned api检查来实现这一点｡
我们会把正在检查的密码传给它｡
我们要做的就是在这个块里面, 假设在这种情况下计数存在, 我要你打印一个F字符串,
这个F字符串会说｡
了｡
我们正在循环的密码｡
被发现了｡
算了多少次？
然后我们会说, 你也许应该改变｡
您的密码｡
不然的话｡
如果这意味着没有计数, 也就是说没有匹配, 那么你们都很好｡
我们可以说｡
如果字符串｡
密码｡
居然没有发现｡
继续吧｡
这是个好密码｡
你应该继续｡
你们都很好｡
最后, 为了好玩, 让我们从这个函数返回｡
返回？
就这样搞定了｡
如果我保存了这个, 看看能得到什么｡
我会说巨蟒三号｡
检查我的通行证, 让我们只是检查｡
你好吗？
我明白了｡
你好, 我是
不是有趣的进行, 但我们知道, 你好之前被发现｡
好吧, 我知道了
我是说, 这是个简单的密码｡
我们应该在这里搞点好东西｡
现在, 我也要删除这个响应的打印｡
既然我们不再需要它了, 你能发现错误吗？
同样, 这是Python的一个棘手的部分, 对吗？
这是我们以前见过的压痕｡
所以你想很好地调试你自己的代码, 并弄清楚在这种情况下会发生什么,
我们可以一步一步地看代码, 但我们可以想, 嗯, 我们实际上从来没有测试过这个计数函数｡
如果我们看这里, 我们的压痕有点偏离, 对吗？
我们有if检查, 但总是返回零｡
在for循环之后, 返回结果应该是这样的｡
在我们检查了所有的东西之后, 没有匹配的｡
那么我们应该返回零｡
所以如果我保存并再次运行｡
好吧, 现在起作用了｡
你会注意到一个简单的小错误就能给予你完全不同的结果｡
因此, 一步一步地尝试一些你已经知道有效的东西总是好的｡
同样重要的是, 运用你的调试技巧, 你将在整个课程中学习, 来尝试和解决问题｡
现在, 没有一个程序员会马上写出一个完美的程序｡
大多数时候你都在试图弄清楚为什么会出现这个错误, 为什么会发生这种情况,
而这正是你在编写代码的过程中变得越来越好的地方｡
所以唯一的解决办法就是继续编写代码｡
希望在整个课程中, 你们已经看到了我在调试它们时犯的一些错误, 以便你们也开始采用这些模式｡
不管怎样, 这太棒了｡
终于有效果了｡
让我们再做几件事｡
让我们说再见, 然后一些胡言乱语｡
好吧, 我会的
看起来这个也起作用了｡
这是真棒｡
我们的密码检查器正在工作｡
现在, 我还想做一件事｡
来完成这个项目｡
让我们在下一个视频中进行演示｡