最近老有人登陆我的账号?我又没给过密码?吓得我赶紧用Python查询一下是否

代码 代码 1439 人阅读 | 0 人回复

<
导语
      近来老有人登我的账号,把我那边间接挤下去去了!我用宁静中间看了,仍是那种外埠的,该当是我没有熟悉的人,觉得没有是很对劲啊!
214350ajwhj9wuxcphepcb.jpg





214350gxdo1zpxquqxx1zr.png



让我们赶快来查一下,固然假如您也碰着这类状况,倡议是先把您的暗码给改失落,固然能够形成没有了甚么丧失,以防万一嘛!
214351tjb6pqcpm6nqr6bn.png

东西
      明天需求用到的东西是Python,
模块
       cfscrape模块;
        argparse模块;
        lxml模块;
       requests模块;
那些模块间接Pip装置便可,用镜像源会很快
214351ngsivzpg0ktrxx0r.png

先去看一下我们做出去的结果
 
214351q9upuncyzwuxufqx.jpg

 

 
214351t89l9ee96p8npfbp.jpg


看到那里我就能够定心的弄定明天那个小工具了,您们也皆能够本人检测一下啊,有的邮件皆是机密,没有允许被公司之外大概级别不敷的人明白的。仍是比力主要的!
214352mom3qsfcjjc8m4fq.png

 道理
         刚进修的小火伴能够没有懂是咋完成的,那我便先给您们介绍一下吧!
起首操纵两个能够查询邮箱宁静性的网站建造的那个小东西,别离是:
214352g73p28h72hi0h725.jpg

 
214353hs2g40q4gqqstdzi.jpg

那两个!
用水狐简朴的抓个包
214353nq4a81q1dz0veeay.png

 然后email用sha1减稀以后post到:
提与返回的结果就能够啦,代码以下:
214353e4uv0lv8mfew0upl.jpg

简朴吧
214354amdcd4k7lqwaww7q.png

 haveibeenpwned谁人我间接搜刮到了一个接心:
道理很简朴,get恳求那个接心就能够完成邮箱的宁静性考证了(emailaddr需求器具体的邮箱地点去替代)。详细完成代码以下:
214354t9o1qi5faooc4kcz.jpg


214354o5xvvxbajhv2jlxf.png

工夫老是长久的!到那里明天的案例便结束了!我们下期再会!
粉丝:源码皆出放上去便念下期再会?您正在念屁吃!
214355n2284g99602a6dl9.png

 附源码(露泪)
  1. #编程女码农
  2. import sys
  3. import time
  4. import random
  5. import hashlib
  6. import requests
  7. import cfscrape
  8. import argparse
  9. from lxml import etree
  10. &#39;&#39;&#39;利用https://monitor.firefox.com/考证&#39;&#39;&#39;
  11. def checkFirefox(emails):
  12.         print(&#39;[INFO]: Using https://monitor.firefox.com/ to verify the security of your email...&#39;)
  13.         url = &#39;https://monitor.firefox.com/scan&#39;
  14.         headers = {
  15.                                 &#39;User-Agent&#39;: &#39;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36&#39;,
  16.                                 &#39;Accept-Language&#39;: "zh-CN,zh;q=0.9"
  17.                         }
  18.         print(&#39;[Results]:&#39;)
  19.         results = []
  20.         for idx, email in enumerate(emails):
  21.                 sha1 = hashlib.sha1()
  22.                 sha1.update(email.encode(&#39;utf-8&#39;))
  23.                 email_sha1 = sha1.hexdigest()
  24.                 data = {
  25.                                         &#39;emailHash&#39;: email_sha1
  26.                                 }
  27.                 res = requests.post(url, headers=headers, data=data)
  28.                 html = etree.HTML(res.text)
  29.                 info_len = len(html.xpath(&#39;//section[@id="download-firefox"]/div/div&#39;))
  30.                 info = &#39;&#39;
  31.                 for i in range(info_len):
  32.                         info += html.xpath(&#39;string(//main[@class="scan-results"]/div/section[@class="half"][%s])&#39; % (i+1))
  33.                 result = info.replace(&#39; &#39;, &#39;&#39;).replace(&#39;\n&#39;, &#39;&#39;)
  34.                 results.append([email, result])
  35.                 print(&#39;--[%d]: %s → %s&#39; % (idx+1, email, result))
  36.                 time.sleep(1 + random.random() * 2)
  37.         return results
  38. &#39;&#39;&#39;利用https://haveibeenpwned.com/考证&#39;&#39;&#39;
  39. def checkHaveibeenpwned(emails):
  40.         print(&#39;[INFO]: Using https://haveibeenpwned.com/ to verify the security of your email...&#39;)
  41.         url = &#39;https://haveibeenpwned.com/api/breachedaccount/{}&#39;
  42.         pasteaccount_url = &#39;https://haveibeenpwned.com/api/v2/pasteaccount/{}&#39;
  43.         headers = {
  44.                                 &#39;User-Agent&#39;: &#39;PwnChecker-API-Python-Script&#39;
  45.                         }
  46.         cookies, user_agent = cfscrape.get_tokens("https://haveibeenpwned.com/api/breachedaccount/test@example.com", user_agent=headers.get(&#39;User-Agent&#39;))
  47.         print(&#39;[Results]:&#39;)
  48.         results = []
  49.         for idx, email in enumerate(emails):
  50.                 res = requests.get(url.format(email), headers=headers, cookies=cookies, verify=True)
  51.                 if str(res.status_code) == &#39;404&#39;:
  52.                         result = &#39;账号宁静, 无背规记载.&#39;
  53.                 elif str(res.status_code) == &#39;200&#39;:
  54.                         result = &#39;账号存正在风险, 有背规记载, 请实时修正暗码.详情以下:\n&#39;
  55.                         res = requests.get(pasteaccount_url.format(email), headers=headers, cookies=cookies, verify=True)
  56.                         if str(res.status_code) == &#39;200&#39;:
  57.                                 json_data = json.dumps(res.content)
  58.                                 for key, value in json_data.items():
  59.                                         result += str(key) + &#39;:&#39; + str(value) + &#39;;&#39;
  60.                         else:
  61.                                 result += &#39;详情获得失利QAQ...&#39;
  62.                 elif str(res.status_code) == &#39;429&#39;:
  63.                         raise RuntimeError(&#39;考证过于频仍, 请%s秒后重试...&#39; % str(res.headers[&#39;Retry-After&#39;]))
  64.                 elif str(res.status_code) == &#39;503&#39;:
  65.                         raise RuntimeError(&#39;恳求被CloudFlare停止, 请确保您利用的ua战cookie是准确的...&#39;)
  66.                 else:
  67.                         raise RuntimeError(&#39;考证过程当中呈现已知毛病, 请测验考试从头运转法式...&#39;)
  68.                 results.append([email, result])
  69.                 print(&#39;--[%d]: %s → %s&#39; % (idx+1, email, result))
  70.                 time.sleep(1 + random.random() * 2)
  71.         return results
  72.        
  73. if __name__ == &#39;__main__&#39;:
  74.         parser = argparse.ArgumentParser(description="Used to verify the security of your email addresses.")
  75.         parser.add_argument(&#39;-f&#39;, dest=&#39;filename&#39;, help=&#39;File to be checked with one email addresses per line&#39;)
  76.         parser.add_argument(&#39;-e&#39;, dest=&#39;email&#39;, help=&#39;Single email address to be checked&#39;)
  77.         args = parser.parse_args()
  78.         email = args.email
  79.         emailfile = args.filename
  80.         if email:
  81.                 checkFirefox([email])
  82.                 checkHaveibeenpwned([email])
  83.         if emailfile:
  84.                 emails = [email.strip(&#39;\n&#39;) for email in open(emailfile)]
  85.                 checkFirefox(emails)
  86.                 checkHaveibeenpwned(emails)
复造代码
好了如今本来也揭上去了,记得给我面个赞哦!拜拜,下次睹
214356p0m5k7sjjm11fjow.png

 好面记了,假如您需求完好的exe东西:​面那里下载

免责声明:假如进犯了您的权益,请联络站少,我们会实时删除侵权内乱容,感谢协作!
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,按照目前互联网开放的原则,我们将在不通知作者的情况下,转载文章;如果原文明确注明“禁止转载”,我们一定不会转载。如果我们转载的文章不符合作者的版权声明或者作者不想让我们转载您的文章的话,请您发送邮箱:Cdnjson@163.com提供相关证明,我们将积极配合您!
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并自负版权等法律责任。
回复 关闭延时

使用道具 举报

 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则