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. QT编译发布程序后报错如缺少dll、“应用程序无法正常启动(0xc000007b)”的可能解决方法

    QT编译发布程序后报错如缺少dll.“应用程序无法正常启动(0xc000007b)”的可能解决方法 最近项目要用qt,因为初学没有经验,遇到些小问题常常没什么头绪,也查不到解决方法,刚刚还因为低端错误 ...

  2. java.lang.ClassCastException: android.widget.ImageButton异常处理

    在调程序时总是出现异常关闭的现象,log显示: 03-26 07:58:09.528: E/AndroidRuntime(398): Caused by: java.lang.ClassCastExc ...

  3. thinkphp5.0URL访问

    URL设计 ThinkPHP5.0在没有启用路由的情况下典型的URL访问规则是: http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/[参数名/参数值. ...

  4. STL容器 -- Bitset

    核心内容:Bitset 是 STL 中的二进制容器, 存放的时 bit 位元素, 每一位只占一个 bit 位, 取值 0 或者 1, 可以像整形元素一样按位与或非, 并且大大优化了时间和空间复杂度. ...

  5. Hibernate 对象的生命周期及CRUD操作

    对象状态及生命周期 1.Transient(瞬时状态):new的对象为瞬时态 session中没有数据,数据库中没有数据. 2.Persistent(持久状态):被session管理的对象为持久状态, ...

  6. 「SCOI2016」萌萌哒

    「SCOI2016」萌萌哒 题目描述 一个长度为 \(n\) 的大数,用 \(S_1S_2S_3 \ldots S_n\) 表示,其中 \(S_i\) 表示数的第 \(i\) 位,\(S_1\) 是数 ...

  7. 51Nod1802 左偏树计数

    题目大意 求$n$个点的无标号左偏树个数 既然你都点进来了,那么估计也是奔着题解来的.... 废话少说.... 首先,左偏树有这么一些性质 设最右链长度为$r[p]$ 1.左偏树的子树仍然是左偏树 2 ...

  8. Codeforces Round #302 (Div. 2) C. Writing Code 简单dp

    C. Writing Code Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/544/prob ...

  9. leetcode47. Permutations II

    leetcode47. Permutations II 题意: 给定可能包含重复的数字的集合,返回所有可能的唯一排列. 思路: 这题全排列两种写法. 用hash表记录已经visit的数字,虽然看起来很 ...

  10. Linux知识(5)----LINUX下GDB调试

    命令 解释 示例   file 加载被调试的可执行程序文件.因为一般都在被调试程序所在目录下执行GDB,因而文本名不需要带路径. (gdb) file gdb-sample     r c Run的简 ...