MD5在线查询的实现
2014-03-21 21:17
204 查看
#!/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")
# -*- 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")
相关文章推荐
- RMQ算法(ST实现在线查询)
- 用Asp实现QQ在线查询功能
- Python登录大连交通大学教务在线实现成绩查询
- 用js实现QQ在线查询功能
- python实现查询qq是否在线
- 基于JNI技术,实现数据库查询,在C++中MD5匹配后回调至Java层的方案
- 使用C语言的libcurl库和cJSON库来在线查询CVE漏洞代码实现
- [导入]实用篇:用asp实现QQ在线查询
- MD5在线查询、解密网站
- 运用器实现在线人员查询
- 使用gsoap实现一个简单的 QQ在线状态查询程序
- 用Asp实现QQ在线查询
- 免费MD5破解、在线查询网站
- MD5在线查询
- 用Asp实现QQ在线查询
- md5在线查询和本地破解
- 基于ASP实现QQ在线查询功能
- php+xml实现在线英文词典查询的方法
- md5在线查询
- java swing调用webservice实现qq在线查询是否在线