欢迎回来｡
让我们继续构建我们的强大工具｡
我们有我们的池塘API检查, 只转换我们的密码到SHA一｡
但我们需要将其发送到API｡
密码API｡
那我们能做些什么呢？
我们要做的第一件事是记住, 我们只需要密码的前五个字符或哈希密码, 这样我们就可以在这里做一些有趣的事情｡
我们可以先说五个字｡
而且也有我们所说的尾巴｡
所以我们要存储前五个字符和第一个变量｡
在第二个变量中, 我们将存储剩余的, 因为我们稍后需要这两个变量｡
所以在这里｡
我们可以使用Python允许的一个很好的小东西, 就是这个很好的语法,
它可以从第五个字符开始｡
然后是第二部分｡
其余字符｡
所以从第五个索引开始一直到最后, 很好很容易｡
这是我们以前学过的东西｡
现在我们有了前五个字符和尾部｡
在这里, 我们可以将其添加到请求API数据中, 这样我就可以调用请求API数据,
并在这里为它给予前五个字符, 我们只需在这里存储响应｡
就像这样｡
现在, 让我们看看我们得到了什么样的响应｡
所以我实际上要返回一个响应
为了确保一切正常, 我们打印出前五个字符和尾部,
以确保一切正常.
如果我运行这个｡
好吧, 我会的
看起来我得到了前五个字符｡
这里有一个空格, 然后是剩余的, 我们没有得到任何错误｡
看起来响应工作正常, 所以我们也打印响应｡
并确保这是工作以及｡
看起来我们得到了200的响应, 但我们仍然不确定我们收到的数据的确切类型｡
我们在这里能做什么？
好吧, 我想了解更多关于我们返回的数据｡
所以我们在这里创建另一个函数｡
现在, 我们称之为读取响应｡
我们要给予它我们得到的回应｡
在这里, 让我们来看看这个反应｡
我们实际上可以打印响应, 这里是点文本｡
因为这是一个API响应｡
所以理想情况下我们可以直接读课文, 看看这样做有什么效果｡
所以这个返回响应将只具有read｡
反应就像是这样｡
如果我运行这个｡
嘿, 看那个｡
这是我们的回应｡
如您所见, 这是一堆散列密码｡
他们有很多人
看起来有几百个｡
这就是我们从反应中得到的结果｡
通过使用对文本的响应, 我们可以得到与哈希密码开头相匹配的所有哈希值｡
非常酷｡
我们能做什么｡
你看我们怎么得到24, 31｡
如此等等｡
这显示了这些密码被破解的次数｡
那很酷｡
理想情况下, 我们可以获取计数值, 看看是否有匹配的尾部,
因为现在我们可以检查尾部, 同时打印出计数值.
因此, 我们不使用读取响应函数, 而是使用get函数｡
密码｡
泄漏｡
接收散列或响应和实际散列的计数函数｡
要检查的是我们自己的密码哈希, 我们需要检查｡
所以我们要检查这个哈希值, 然后遍历所有的哈希值｡
所以我们可以再做点什么｡
用Python我们可以说hashes等于｡
我们可以在这里使用一个元组, 我们可以做一个元组解析, 我们以前见过｡
我可以说行点分裂｡
所以我们要把行中的所有东西都分开, 就是你们可以看到的这些列｡
这就是哈希的尾部和被黑客攻击的次数｡
所以我们要按列拆分｡
然后我们循环说四行｡
所以这条线就是从这里来的｡
四行散列｡
点文本｡
现在, 如果我这样离开它, 这实际上是行不通的｡
我马上告诉你为什么｡
实际上, 我们现在就去吧｡
让我们看看打印哈希值会给予我们什么｡
代替雷德的回应｡
我们现在就开始｡
所以得到密码泄露的账号｡
如果我跑了, 我们就能解决这个问题｡
我收到一个错误？
我得到了一个错误, 因为我们还必须添加散列来进行检查｡
那么, 要检查的哈希值应该是什么呢？
嗯, 是尾巴, 对吧？
我们实际密码的尾部｡
所以我要在第二个参数上加上尾巴｡
保存并再次运行｡
好吧, 我得到了回应｡
200, 我得到一个生成器对象｡
这个生成器对象, 我们实际上可以通过速率循环｡
让我们来看看如果我做四个会发生什么｡
记住, 我们有哈希值和计数, 我们用hash h表示hash, 用hash表示计数,
因为我们已经转换成了一个元组, 它有哈希值和计数｡
因为我们要分开了, 记得吗？
所以如果我们这么做｡
让我们打印每一个并计数｡
如果我运行这个｡
嗯嗯嗯
我收到一个错误｡
值错误｡
没有足够的值来解包｡
希望它能干掉一个｡
嗯嗯嗯
为什么会这样呢？
让我们打印H, 看看会发生什么.
现在把计数去掉｡
让我们清除这个, 然后再运行一次｡
嗯嗯嗯
看起来我们没有分开｡
每个项目都有自己的清单｡
所以实际上我们必须在字符串上使用一种叫做分割线的东西｡
而且如你所见｡
它返回字符串中行的列表｡
并且在行边界处断开｡
所以当我们在哈希文本上运行四个循环时, 如果我们向上滚动, 看看我们是否能看到它｡
不, 它不在那里了｡
但是如果我们向上滚动, 我们就得到了一个巨大的文本列表｡
理想情况下, 在每一行上, 我们将其拆分, 这样这一行就很好地代替了每一个单独的元素,
实际的哈希和计数｡
所以我们只需要像这样做点分割线｡
如果我保存这个然后再跑一次｡
这样好多了
现在我们得到了想要的东西｡
我们可以再一次回到我们以前拥有的东西, 那就是计数｡
如果我们打印H并计数, 我们保存｡
再运行一次｡
这样好多了｡
我们把每一件物品都分开了｡
让我们休息一下, 在下一个视频中继续｡