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. 查看loadrunner运行日志

    查看loadrunner运行日志   日志分两种 1.在VUGEN中运行后的日志 2.在controller中运行后的日志日志设置分两步: 1.首先,在VUGEN或controller中run-tim ...

  2. 湖南大学ACM程序设计新生杯大赛(同步赛)D - Number

    题目描述 We define Shuaishuai-Number as a number which is the sum of a prime square(平方), prime cube(立方), ...

  3. Python的环境搭建——万丈高楼平地起

    Python的环境搭建,远程连接,端口映射,虚拟机 写在正文之前 python语言的开发环境还是相对比较简单的,但是也是有很多需要注意的地方,对于初次接触python或者以前很少用到虚拟环境的朋友来说 ...

  4. Redux学习之我对于其工作流程的理解和实践

      目录 1 工作流程图 2 各部位职责 3 Demo   1 工作流程图   2 各部位职责 我在理解这个流程图的时候,采用的是一种容易记住的办法,并且贴切实际工作职责. 我们可以把整个Redux工 ...

  5. Wireshark数据抓包教程之Wireshark捕获数据

    Wireshark数据抓包教程之Wireshark捕获数据 Wireshark抓包方法 在使用Wireshark捕获以太网数据,可以捕获分析到自己的数据包,也可以去捕获同一局域网内,在知道对方IP地址 ...

  6. 2017/11/20 Leetcode 日记

    2017/11/14 Leetcode 日记 442. Find All Duplicates in an Array Given an array of integers, 1 ≤ a[i] ≤ n ...

  7. 【UOJ #204】【APIO 2016】Boat

    http://uoj.ac/problem/204 肯定要离散化的,先离散化出\(O(n)\)个取值区间. 设\(f(i,j)\)表示第\(i\)所学校派出的划艇数量在\(j\)区间中. \(f(i, ...

  8. KMP的小结

    http://www.cnblogs.com/kuangbin/archive/2012/08/14/2638803.html 如果有哪一天不记得模板了就去看看大神的 .  非常清晰易懂.

  9. web前端 -- 页面设计小技巧

    1:进入网页时淡入淡出的效果. <meta http-equiv=”Page-Exit”; content=”blendTrans(Duration=1.0)”> 在头部head之间加入此 ...

  10. [转]ViewPager 详解(三)---PagerTabStrip与PagerTitleStrip添加标题栏的异同

      目录(?)[-] 一PagerTitleStrip Class Overview XML布局文件 重写适配器的getPageTitle函数 变量 初始化 重写CharSequence getPag ...