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. 【BZOJ】4311: 向量(线段树分治板子题)

    题解 我们可以根据点积的定义,垂直于原点到给定点构成的直线作一条直线,从正无穷往下平移,第一个碰到的点就是答案 像什么,上凸壳哇 可是--动态维护上凸壳? 我们可以离线,计算每个点能造成贡献的一个询问 ...

  2. 用于浏览器本地存储的js插件 - jStorage

    简介 jStorage是一个跨浏览器的将key-value类型的数据存储到浏览器本地存储的js插件——jStorage支持所有主流浏览器,PC机(甚至包括是IE6)和移动终端均可用.此外,jStora ...

  3. Node.js 部署到 CentOs

    配置服务器环境 3.把yum更新到最新版本: yum -y update 4.我们将使用最新源代码构建Node.js,要进行软件的安装,需要一组用来编译源代码的开发工具: yum -y groupin ...

  4. 【SQL SERVER】触发器(一)

    下面是个人对触发器知识的整理,触发器其实很简单,但想要编写发杂的触发器操作还是需要一定的SQL语句编写,触发器主要用于SQL SERVER约束.默认值和规则的完整性检查,还可以实现由主键和外键不能保证 ...

  5. Ubuntu 如何更换阿里源

    #进入源地址 cd /etc/apt #备份源文件 sudo cp sources.list sources.list.bak #编辑 sudo vim /etc/apt/sources.list d ...

  6. Python开发基础-Day30多线程锁机制

    GIL(全局解释器锁) GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念,是为了实现不同线程对共享资源访问的互斥,才引入了GIL 在Cpython解释器 ...

  7. 一个安卓应用 多少个 dalvik 虚拟机

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 一个

  8. 我的OI生涯 第七章 终篇

    11.10日. 我们TSOI再次来到了熟悉的燕山大学,只不过这次是真刀真枪的干了. 望着那座熟悉的小桥,身边的好友不知此行过后还有多少. 下午才到,出人意外的是这次没有住燕大宾馆而是选择了熟悉的格林豪 ...

  9. zoj 3261 逆向并查集+离线处理

    题意:给出一些点,每个点有权值,然后有一些边,相连.无向的.然后有一些操作 链接:点我 query a.表示从a出发的能到达的所有点权值最大的点的编号(相同取编号最小,而且权值要比自己大) desto ...

  10. 【BZOJ】1996: [Hnoi2010]chorus 合唱队【区间dp】

    1996: [Hnoi2010]chorus 合唱队 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 2088  Solved: 1371[Submit][ ...