1. #!/usr/bin/env python
    2. # -*- coding: UTF-8 -*-
    3. '''
    4. 快速查询md5值工具,通过模拟浏览器发包请求http://cmd5.com和
    5. http://xmd5.org两个网站进行在线查询。
    6. By Terry
    7. '''
    8. import urllib
    9. import urllib2
    10. import re
    11. import sys
    12. def xmd5(hash_str):
    13. #
    14. #http://xmd5.org以GET方式提交请求,模拟浏览器发送GET请求包。
    15. #
    16. xmd_url = 'http://www.xmd5.org/md5/search.asp?hash='+hash_str
    17. xmd_request = urllib2.Request(xmd_url)
    18. xmd_request.add_header("Connection", "keep-alive")
    19. xmd_request.add_header("Accept","text/xmd_html,application/xxmd_html+xml,application/xml;q=0.9,*/*;q=0.8")
    20. xmd_request.add_header("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.17 (Kxmd_html, like Gecko) Chrome/24.0.1312.57 Safari/537.17")
    21. xmd_request.add_header("Referer", "http://www.xmd5.org/index_cn.htm")
    22. xmd_request.add_header("Accept-Encoding", "gzip,deflate,sdch")
    23. xmd_request.add_header("Accept-Language", "en-US,en;q=0.8")
    24. xmd_request.add_header("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.3")
    25. response = urllib2.urlopen(xmd_request)
    26. xmd_html = response.read()
    27. pattern = re.compile(r'<font color="red" size="4">&nbsp;Result:</font><font color="#ffffff" size="3">([wW]*)</font>')
    28. match_html = pattern.findall(xmd_html)
    29. pattern = re.compile(r'[S]*')
    30. match_key = pattern.findall(match_html[0])
    31. #for i in match_key:
    32. # print '#'+i
    33. #print match2[2]
    34. #print len(match_key[2])
    35. if len(match_key[2])==52:
    36. print u'xmd5:请确认是否是标准的MD5数据!xmd5支持16位和32位MD5数据'
    37. elif len(match_key[2])>0:
    38. print u'xmd5:恭喜,明文是>>>'+match_key[2]
    39. else:
    40. print u'xmd5:暂时还没查询到 - -|||'
    41. def cmd5(hash_str):
    42. #
    43. #http://cmd5.com网站是以POST请求发送的,模拟浏览器进行发送POST请求。
    44. #
    45. cmd5_url = 'http://cmd5.com'
    46. cmd5_data = {
    47. "__EVENTTARGET":"Button1",
    48. "__EVENTARGUMENT":"",
    49. "__VIEWSTATE":"8L1jRFsVmr/4ZHakSdlLVXaEMDhLz+4eoqPVVK0+Jbp8z3QE2vIkUVP02wy4oW+23Rk61GvhSZIi1n3m4B+hpJVmt6luda2LgVNU7SUAOYOPsy2UcCjKRS7STM00pUPadDrWvQEmQLH1UvDzkmf/oc48uiJ8sWjmmGWh0JbuUVYOdcHjVburdEvRTVT6nAVsyrBEMPbI3a3vNi3lzG/eTDrR6QBwzBw1RSXW0Szdn3tNV8SKj9qJfrzTlGuksLoDNba7qQ5txF8e2G1F9ZVS9RmeTYtbYRpCUeyDhorfMCq2klfSSfz2p8MOtb+f/RtvQV9/jknystxD4ZkqtKn7NcrEYeF1lcM4m9rOnq+tf2kdu+CcbSuXSR5ffnUGEt67fW/aijbvWiRECuYpEUPI6sPxvzRgI+LJhMaM7d3RLmAZGuCZkxs1lh+scdJ0jfM/v1Y9+g1kMf0Z7p5OOlRkG90X9uJVB7Q6SwrT85usgUduAza/NW0SCSS1uvGYeCENywnlgUihEupK7Fl1jso7WAOILLtpBdAMeo0dsl1OrwQ2WBjJq9dDRxpF7XQnNcjI0yJKgNsJkI/fB4qfgUx0lb/G1oPg/wk24rpA3XpxFpwYKO5E/7dHFqnchw9tvuchS2oA4Rni6vCs2bbViJS5sq7Mh0lh05rKIJbBhlCVhnZTG4QktDJmiUn12bVe/Uf0yC5HcX6LTH+3TPzuqgcNeKWy0FQc4R26UFEvJA7UHld9U3xDq+MjfG2WmUF/hgm6FoEhIUjm8z9rAnXPtSLJ7Cbq1EXneb+wdgW2cfTLz2h+CaVMdFpbcdvoRr+TdJZ5voX15/b57X8mInevtukDskJAD/7hS47B2kWtXjzo/H9bL2x629FkssG2xc1P/PAKMk9e0bjROdw9Mu45UYtWGO5eOSRPEGaZ0Dx0y/gMsWtqcGy8aOHcQp9YF46VuWcTIJFJrAF1a0ZSqyNBnQo4z3yhGed5BTc4Zl+hHRLbcw5IKxS4Jpah01VtNbJilewUP62XlsmpX9CLoB/D1RjHmRSm027+aVrfQ2oOpMUYKU/XrDgk4Nj+4CcXulIVFBXVFc6VdIDsi+oZPFfuhxVduMQbZSl/GgJe2dz+6q7CKJuOqhMUurZg3Rb0mkwKNG8tcSpv8MZGLKmtnuof2zeUJw7nSBLqzTTALZk9sPZe8iFuLQb+NHKHKCHz4laa9aLzovEoRtmE0j3BgBehmzb0F3eyIZ/I/+RviEBaYJcJ6q2FQAYrC7CSrmk8hVMtixCjUqUYA4vhVBX0uhv0pNaiUuHYtGlZhdtlTMfNucRkwXgqw7KU1Bl4C4ICIL07cOfjsUdNhkBTvOdzm1tTvrKpe70Sy0Da1IQRtbUxXdgLUtN4144mW9GOO33MkwOo6ZRqmMkLoZucuZcOL0UnB7pVitUQUr7eXD0B7VuLOZcUTVyUkJ6fCpKFHc/mbVXJQrGyWIyRb7lgjDBsxvfm",
    50. "ctl00$ContentPlaceHolder1$TextBoxInput":hash_str,
    51. "ctl00$ContentPlaceHolder1$InputHashType":"md5",
    52. "ctl00$ContentPlaceHolder1$Button1":"解密",
    53. "ctl00$ContentPlaceHolder1$HiddenField1":"",
    54. "ctl00$ContentPlaceHolder1$HiddenField2":"0k7/kHiRphkDzojwmW8II+N7F04M5Fv6oWRFL2JpdZR4H/dnc1JlkGaMpuAeawdZ"
    55. }
    56. cmd5_url_data = urllib.urlencode(cmd5_data)
    57. cmd5_header = {
    58. "Connection": "keep-alive",
    59. "Content-Length": str(len(cmd5_url_data)),
    60. "Cache-Control": "max-age=0",
    61. "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    62. "Origin": "http://cmd5.com",
    63. "User-Agent": "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)",
    64. "Content-Type": "application/x-www-form-urlencoded",
    65. "Referer": "http://cmd5.com/",
    66. "Accept-Encoding": "gzip,deflate,sdch",
    67. "Accept-Language": "en-US,en;q=0.8",
    68. "Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.3"
    69. }
    70. cmd5_request = urllib2.Request(cmd5_url,cmd5_url_data,cmd5_header)
    71. cmd5_response = urllib2.urlopen(cmd5_request)
    72. cmd5_html = cmd5_response.read()
    73. #print cmd5_html
    74. pattern = re.compile(r'<span id="ctl00_ContentPlaceHolder1_LabelAnswer">([wW]*?)')
    75. match = pattern.findall(cmd5_html)
    76. #print match
    77. #print len(match[0])
    78. if len(match[0])==204:
    79. print u"cmd5:已查到,这是一条付费记录."
    80. elif len(match[0])==157:
    81. print u"cmd5:密文无法识别或无法处理,请确认密文类型是否选择正确."
    82. elif len(match[0])==184:
    83. print u"cmd5:未查到."
    84. elif len(match[0])==45:
    85. print u"cmd5:请打开网页"http://cmd5.com"输入验证码后继续."
    86. else:
    87. print u"cmd5:恭喜,明文是>>>" + match[0]
    88. if __name__ == '__main__':
    89. if len(sys.argv)>1:
    90. xmd5(sys.argv[1])
    91. cmd5(sys.argv[1])
    92. else:
    93. print(u"请传递参数,用法:\r\nmd5.py 21232f297a57a5a743894a0e4a801fc3")

MD5在线查询的实现的更多相关文章

  1. 实时分析(在线查询),firehose---clickhouse

    firehose---clickhouse 在Hive中适不适合像传统数据仓库一样利用维度建模hive新功能 Cube, Rollup介绍https://blog.csdn.net/moon_yang ...

  2. 计蒜客 38229.Distance on the tree-1.树链剖分(边权)+可持久化线段树(区间小于等于k的数的个数)+离散化+离线处理 or 2.树上第k大(主席树)+二分+离散化+在线查询 (The Preliminary Contest for ICPC China Nanchang National Invitational 南昌邀请赛网络赛)

    Distance on the tree DSM(Data Structure Master) once learned about tree when he was preparing for NO ...

  3. hihocoder Arithmetic Expression【在线查询】

    Arithmetic Expression   时间限制:2000ms 单点时限:200ms 内存限制:256MB 描述 Given N arithmetic expressions, can you ...

  4. 一些重要的地址:md5在线解密破解

    md5在线解密破解:https://www.cmd5.com/

  5. Cloudera Hadoop 4 实战课程(Hadoop 2.0、集群界面化管理、电商在线查询+日志离线分析)

    课程大纲及内容简介: 每节课约35分钟,共不下40讲 第一章(11讲) ·分布式和传统单机模式 ·Hadoop背景和工作原理 ·Mapreduce工作原理剖析 ·第二代MR--YARN原理剖析 ·Cl ...

  6. 国内国外MD5在线解密站点

    -http://www.cmd5.com/english.aspx (457,354,352,282) - http://www.md5crack.com - http://www.hashcheck ...

  7. 国内外MD5在线解密网站

    -http://www.cmd5.com/english.aspx (457,354,352,282) - http://www.md5crack.com - http://www.hashcheck ...

  8. MD5在线加密的应用

    MD5是message-digest algorithm 5(信息-摘要算法)的缩写.被广泛用于加密和解密技术上,是文件的“数字指纹”.可以对用户的密码进行加密操作,是不可逆的,所以用户输入的密码经过 ...

  9. MySQL网页端在线查询工具

    现在许多应用都移到云服务器上面了,数据库的远程维护.监控成为一大问题,通过TreeSoft数据库管理系统,可以方便的使用浏览器,通过网页操作的方式管理MySQL,Oracle,DB2,PostgreS ...

随机推荐

  1. 1-4 TCP/IP协议族

    网络协议是在内核中实现的,socket是对tcp/ip协议的系统调用,提供以下两点功能: 1. 将应用撑血数据从用户缓冲区中复制到TCP/UDP内核发送缓冲区,以交付内核发送来的数据(比如send), ...

  2. 浅谈css中浮动和清除浮动带来的影响

    有很多时候,我们都会用到浮动,而我们有时候对浮动只是一知半解,却不是太清楚它到底是怎么回事,不知道各位有没有和我一样的感觉,只知道用它,却不知道它到底是怎么回事,所以,在学习的过程中,就要把一个概念不 ...

  3. vue引入自己写的js文件

    话不多说,直接上代码呀~ 先来个结构图: 中规中矩的vue-cli就写了一个自己的js文件 那么我想要引入到vue组件里. 1.首先写我的js文件 2.引入到vue组件!!!一定要用{}把方法名拿过来 ...

  4. TopTicTacToe 开发文档

    团队成员: 1.张旭 2.余浩 3.孙闯 4.吴阳 5.王晓华 6.张国庆 开发文档地址:http://www.kancloud.cn/netcon/t4 代码项目地址:https://coding. ...

  5. MPI - 缓冲区和非阻塞通信

    转载自: Introduction to MPI - Part II (Youtube) Buffering  Suppose we have ) MPI_Send(sendbuf,...,,...) ...

  6. 通过openURL的方式启动其它App

    假设有两个App,项目名分别是SampleA和SampleB,需要在SampleA里点击一个Button来启动SampleB,并传递一个字符串.具体实现步骤如下: 1. 在SampleB的info.p ...

  7. [APIO2007]动物园 --- 状压DP

    [APIO2007]动物园 题目描述 新建的圆形动物园是亚太地区的骄傲.圆形动物园坐落于太平洋的一个小岛上,包含一大圈围栏,每个围栏里有一种动物. 如下图所示: 你是动物园的公共主管.你要做的是,让每 ...

  8. 【推导】【线段树】hdu5929 Basic Data Structure

    题意: 维护一个栈,支持以下操作: 从当前栈顶加入一个0或者1: 从当前栈顶弹掉一个数: 将栈顶指针和栈底指针交换: 询问a[top] nand a[top-1] nand ... nand a[bo ...

  9. 【轮廓线DP】POJ2411-Mondriaan's Dream

    今天美国的院士过来讲课XD以为会很无聊但是谜之好听,而且英语基本上都听懂了的样子♪(´▽`) 逃到图书馆来写解题报告 [题目大意] 给出一个m*n的方格,用2*1的骨牌覆盖有几种情况. [思路] 最基 ...

  10. bzoj1977 次小生成树

    Description 小 C 最近学了很多最小生成树的算法,Prim 算法.Kurskal 算法.消圈算法等等. 正当小 C 洋洋得意之时,小 P 又来泼小 C 冷水了.小 P 说,让小 C 求出一 ...