JS开发字典探测用户名或密码工具
文章作者:翟振凯 (小琦)
作者网站:http://www.xiaoqi.net
作者论坛:http://www.tdqy.com
QQ: 22336848 53353866
授人予鱼,不如授人予渔。本文注重讲述作者的开发思路与程序的实现方法,目地是让大家了解一个程序的开发过程和这个程序功能的实现原理,而不仅仅是给大家提供一个这样的工具。希望看过本文后的朋友会有所收获,能和我共同分享用javascript编写程序的乐趣。
为了便于大家的理解,本程序在实现过程中,简洁的使用了多种javascript技术,并且在每一步,都有详细的注解,就算您是个WEB程序开发新手,也能比较容易理解本文,并相信本文会对您将来的WEB程序开发生涯有所帮助。
核心技术:
- xmlhttp获取数据 javascript对文本数据处理
- javascript对数组循环读取(两种方法)
- xmlhttp取中文值乱码转换
主要功能:
- 网站可用用户名探测
- 使用用户名字典批量探测户名字
- 用户名密码暴力破解
特色:
- 采用AJAX技术,无刷新操作、呈现结果 可以载入本地字典文件或网络字典文件脱离后台动态语言依赖,B/S模式C/S界面,纯javascript编写功能代码,完美运行于所有IE内核浏览器实时显示探测结果,探测进度,成功结果与失败结果分开显示 支持暂停探测和继续探测
- 代码简洁仅1K
- 支持多线程探测,可设定缓冲时间
开发思路及原理:
一、基本探测
- 用xmlhttp向被探测页面地址发送要探测数据
- 对xmlhttp返回值进行判断
- 将判断结果以追加的方式呈现在页面上
二、批量探测
- 用xmlhttp载入字典文件
- 用javascript将字典文件以换行符(\r\n)为分隔,转化为数组
- 按照字典数组顺序循环向探测地址发送数据并且对返回数据进行判断处理
三、功能强化
- 取得字典数组大小(即:要探测的次数),返回给用户 将探测次数依次累加,呈现给用户当前探测进度 设定探测进程,即:每探测多少个数据,才向用户返回一次结果
- 设定缓冲时间,即:设定探测时间间隔,防止浏览器在大数据量探测时停止响应
- 探测暂停或继续探测
四、开发背景
前些天,想在百度空间上注册一个简短而又有意义的用户名,发现自己喜欢的很多用户名都被占用了,而进行一个个的手工用户名探测又太麻烦了。
因为我是一个喜欢运用自己掌握的技术来解决问题(或困难)的人,于是就写了这个程序。
为了使它给使用起来比较方便,也为了让它更加实用,我又在它的通用性上做了些加强。
比如:
可以探测大部分不需要验证码检测用户名是否被占用的网站。
可以探测一些网站用户的密码。
可以探测一些网站用户的密码取回问题。
可以向WEB服务器批量提交指定数据
起初我是用ASP脚本来实现的,但ASP程序只能运行于支持ASP的WEB服务器上,无法直接在浏览器上执行,使用起来没有那么方便,于是就写了这个javascript的版本的程序。
五、实现过程
1、使用try-catch异常处理创建XMLHTTPRequest对象
//尝试用IE浏览器的方式创建XMLHttpRequest对象
var xmlhttp = null;
try
{
xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");
}
catch(e)
{
try
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
alert("您的浏览器不能创建XMLHttpRequest对象,无法使用此程序!");
}
}
//尝试用IE浏览器的方式创建XMLHttpRequest对象结束
/*
翟振凯注:MSXML2.XMLHTTP 和 Microsoft.XMLHTTP 都是微软的XMLHTTP控件,只是版本不同。
IE的安全级别如果不是太高,微软的XMLHTTP控件是可以跨域获取数据的。
因为 Mozilla Firefox 浏览器的 XMLHttpRequest() 不能跨域获取数据,我们就不用 XMLHt
相关新闻>>
- 发表评论
-
- 最新评论 更多>>