MD5在线查询的实现
- #!/usr/bin/env python
- # -*- coding: UTF-8 -*-
- '''
- 快速查询md5值工具,通过模拟浏览器发包请求http://cmd5.com和
- http://xmd5.org两个网站进行在线查询。
- By Terry
- '''
- import urllib
- import urllib2
- import re
- import sys
- def xmd5(hash_str):
- #
- #http://xmd5.org以GET方式提交请求,模拟浏览器发送GET请求包。
- #
- xmd_url = 'http://www.xmd5.org/md5/search.asp?hash='+hash_str
- xmd_request = urllib2.Request(xmd_url)
- xmd_request.add_header("Connection", "keep-alive")
- xmd_request.add_header("Accept","text/xmd_html,application/xxmd_html+xml,application/xml;q=0.9,*/*;q=0.8")
- 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")
- xmd_request.add_header("Referer", "http://www.xmd5.org/index_cn.htm")
- xmd_request.add_header("Accept-Encoding", "gzip,deflate,sdch")
- xmd_request.add_header("Accept-Language", "en-US,en;q=0.8")
- xmd_request.add_header("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.3")
- response = urllib2.urlopen(xmd_request)
- xmd_html = response.read()
- pattern = re.compile(r'<font color="red" size="4"> Result:</font><font color="#ffffff" size="3">([wW]*)</font>')
- match_html = pattern.findall(xmd_html)
- pattern = re.compile(r'[S]*')
- match_key = pattern.findall(match_html[0])
- #for i in match_key:
- # print '#'+i
- #print match2[2]
- #print len(match_key[2])
- if len(match_key[2])==52:
- print u'xmd5:请确认是否是标准的MD5数据!xmd5支持16位和32位MD5数据'
- elif len(match_key[2])>0:
- print u'xmd5:恭喜,明文是>>>'+match_key[2]
- else:
- print u'xmd5:暂时还没查询到 - -|||'
- def cmd5(hash_str):
- #
- #http://cmd5.com网站是以POST请求发送的,模拟浏览器进行发送POST请求。
- #
- cmd5_url = 'http://cmd5.com'
- cmd5_data = {
- "__EVENTTARGET":"Button1",
- "__EVENTARGUMENT":"",
- "__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",
- "ctl00$ContentPlaceHolder1$TextBoxInput":hash_str,
- "ctl00$ContentPlaceHolder1$InputHashType":"md5",
- "ctl00$ContentPlaceHolder1$Button1":"解密",
- "ctl00$ContentPlaceHolder1$HiddenField1":"",
- "ctl00$ContentPlaceHolder1$HiddenField2":"0k7/kHiRphkDzojwmW8II+N7F04M5Fv6oWRFL2JpdZR4H/dnc1JlkGaMpuAeawdZ"
- }
- cmd5_url_data = urllib.urlencode(cmd5_data)
- cmd5_header = {
- "Connection": "keep-alive",
- "Content-Length": str(len(cmd5_url_data)),
- "Cache-Control": "max-age=0",
- "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
- "Origin": "http://cmd5.com",
- "User-Agent": "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)",
- "Content-Type": "application/x-www-form-urlencoded",
- "Referer": "http://cmd5.com/",
- "Accept-Encoding": "gzip,deflate,sdch",
- "Accept-Language": "en-US,en;q=0.8",
- "Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.3"
- }
- cmd5_request = urllib2.Request(cmd5_url,cmd5_url_data,cmd5_header)
- cmd5_response = urllib2.urlopen(cmd5_request)
- cmd5_html = cmd5_response.read()
- #print cmd5_html
- pattern = re.compile(r'<span id="ctl00_ContentPlaceHolder1_LabelAnswer">([wW]*?)')
- match = pattern.findall(cmd5_html)
- #print match
- #print len(match[0])
- if len(match[0])==204:
- print u"cmd5:已查到,这是一条付费记录."
- elif len(match[0])==157:
- print u"cmd5:密文无法识别或无法处理,请确认密文类型是否选择正确."
- elif len(match[0])==184:
- print u"cmd5:未查到."
- elif len(match[0])==45:
- print u"cmd5:请打开网页"http://cmd5.com"输入验证码后继续."
- else:
- print u"cmd5:恭喜,明文是>>>" + match[0]
- if __name__ == '__main__':
- if len(sys.argv)>1:
- xmd5(sys.argv[1])
- cmd5(sys.argv[1])
- else:
- print(u"请传递参数,用法:\r\nmd5.py 21232f297a57a5a743894a0e4a801fc3")
MD5在线查询的实现的更多相关文章
- 实时分析(在线查询),firehose---clickhouse
firehose---clickhouse 在Hive中适不适合像传统数据仓库一样利用维度建模hive新功能 Cube, Rollup介绍https://blog.csdn.net/moon_yang ...
- 计蒜客 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 ...
- hihocoder Arithmetic Expression【在线查询】
Arithmetic Expression 时间限制:2000ms 单点时限:200ms 内存限制:256MB 描述 Given N arithmetic expressions, can you ...
- 一些重要的地址:md5在线解密破解
md5在线解密破解:https://www.cmd5.com/
- Cloudera Hadoop 4 实战课程(Hadoop 2.0、集群界面化管理、电商在线查询+日志离线分析)
课程大纲及内容简介: 每节课约35分钟,共不下40讲 第一章(11讲) ·分布式和传统单机模式 ·Hadoop背景和工作原理 ·Mapreduce工作原理剖析 ·第二代MR--YARN原理剖析 ·Cl ...
- 国内国外MD5在线解密站点
-http://www.cmd5.com/english.aspx (457,354,352,282) - http://www.md5crack.com - http://www.hashcheck ...
- 国内外MD5在线解密网站
-http://www.cmd5.com/english.aspx (457,354,352,282) - http://www.md5crack.com - http://www.hashcheck ...
- MD5在线加密的应用
MD5是message-digest algorithm 5(信息-摘要算法)的缩写.被广泛用于加密和解密技术上,是文件的“数字指纹”.可以对用户的密码进行加密操作,是不可逆的,所以用户输入的密码经过 ...
- MySQL网页端在线查询工具
现在许多应用都移到云服务器上面了,数据库的远程维护.监控成为一大问题,通过TreeSoft数据库管理系统,可以方便的使用浏览器,通过网页操作的方式管理MySQL,Oracle,DB2,PostgreS ...
随机推荐
- 【BZOJ】4311: 向量(线段树分治板子题)
题解 我们可以根据点积的定义,垂直于原点到给定点构成的直线作一条直线,从正无穷往下平移,第一个碰到的点就是答案 像什么,上凸壳哇 可是--动态维护上凸壳? 我们可以离线,计算每个点能造成贡献的一个询问 ...
- 用于浏览器本地存储的js插件 - jStorage
简介 jStorage是一个跨浏览器的将key-value类型的数据存储到浏览器本地存储的js插件——jStorage支持所有主流浏览器,PC机(甚至包括是IE6)和移动终端均可用.此外,jStora ...
- Node.js 部署到 CentOs
配置服务器环境 3.把yum更新到最新版本: yum -y update 4.我们将使用最新源代码构建Node.js,要进行软件的安装,需要一组用来编译源代码的开发工具: yum -y groupin ...
- 【SQL SERVER】触发器(一)
下面是个人对触发器知识的整理,触发器其实很简单,但想要编写发杂的触发器操作还是需要一定的SQL语句编写,触发器主要用于SQL SERVER约束.默认值和规则的完整性检查,还可以实现由主键和外键不能保证 ...
- Ubuntu 如何更换阿里源
#进入源地址 cd /etc/apt #备份源文件 sudo cp sources.list sources.list.bak #编辑 sudo vim /etc/apt/sources.list d ...
- Python开发基础-Day30多线程锁机制
GIL(全局解释器锁) GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念,是为了实现不同线程对共享资源访问的互斥,才引入了GIL 在Cpython解释器 ...
- 一个安卓应用 多少个 dalvik 虚拟机
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 一个
- 我的OI生涯 第七章 终篇
11.10日. 我们TSOI再次来到了熟悉的燕山大学,只不过这次是真刀真枪的干了. 望着那座熟悉的小桥,身边的好友不知此行过后还有多少. 下午才到,出人意外的是这次没有住燕大宾馆而是选择了熟悉的格林豪 ...
- zoj 3261 逆向并查集+离线处理
题意:给出一些点,每个点有权值,然后有一些边,相连.无向的.然后有一些操作 链接:点我 query a.表示从a出发的能到达的所有点权值最大的点的编号(相同取编号最小,而且权值要比自己大) desto ...
- 【BZOJ】1996: [Hnoi2010]chorus 合唱队【区间dp】
1996: [Hnoi2010]chorus 合唱队 Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 2088 Solved: 1371[Submit][ ...