WIFI常见的几种加密方式(详细)

系统设置中WIFI热点的加密方式,添加新的WIFI和连接WIFI的时候,需要在程序中配置相应的参数,可以打开自己的手机对着看

包:android.net.wifi.WifiConfiguration  类 WifiConfiguration

设置网络的SSID

config.SSID

默认都设置为true

config.hiddenSSID

1:没加密

添加网络时候只需要输入SSID即可,不需要密码

config.allowedKeyManagement.set(KeyMgmt.NONE);

2:WEP加密

添加网络时需要输入SSID和密码。

config.allowedKeyManagement.set(KeyMgmt.NONE);

config.allowedAuthAlgorithms.set(AuthAlgorithm.OPEN);
config.allowedAuthAlgorithms.set(AuthAlgorithm.SHARED);

设置密码

config.wepKeys[0]

 WEP密钥。一个ASCII字符串包含在双引号中(例如, "abcdef"或一个十六进制数字的字符串(例如, 0102030405).

当这些键之一是阅读的价值,实际的关键不是返回,只是一个“*”键有一个值,否则或空字符串

设置该参数的参考代码如下:

String password = etPassword.getText().toString();
// WEP-40, WEP-104, and 256-bit WEP (WEP-232?)
if ((length == 10 || length == 26 || length == 58)
&& password.matches("[0-9A-Fa-f]*")) {
config.wepKeys[0] = password;
} else {
config.wepKeys[0] = '"' + password + '"';//这里是一对引号
}

3:WPA/WPA2加密

添加网络时需要输入SSID和密码。

config.allowedKeyManagement.set(KeyMgmt.WPA_PSK);

设置密码

config.preSharedKey

这个关键是读的值时,实际的关键不是返回,只是一个“*”键有一个值,否则或空字符串。

设置该参数的参考代码如下:

String password = etPassword.getText().toString();
if (password.matches("[0-9A-Fa-f]{64}")) {
config.preSharedKey = password;
} else {
config.preSharedKey = '"' + password + '"';//这里是一对引号
}

 

4:802.1x EAP加密

config.allowedKeyManagement.set(KeyMgmt.WPA_EAP);

设置EAP方法

config.enterpriseConfig.setEapMethod();

EAP方法又分为TLS   TTLS PWD PEAP等四种,选择不同的类型后面所需要的参数也可能不同


设置阶段2身份验证

config.enterpriseConfig.setPhase2Method();

阶段2身份验证又分为 无  PAP  MSCHAP  MSCHAPV2  GTC等五种  

设置用户证书

config.enterpriseConfig.setClientCertificateAlias();

设置CA证书

config.enterpriseConfig.setCaCertificateAlias();


获取CA证书(字符串类型数组)

KeyStore.getInstance().saw(Credentials.CA_CERTIFICATE, android.os.Process.WIFI_UID);


获取用户证书(字符串类型数组)

KeyStore.getInstance().saw(Credentials.USER_PRIVATE_KEY, android.os.Process.WIFI_UID);

设置身份

config.enterpriseConfig.setIdentity()

设置匿名身份

config.enterpriseConfig.setAnonymousIdentity();


设置密码

config.enterpriseConfig.setPassword();


设置完相关参数以后保存下网络即可

WifiManager.save(WifiConfiguration config,ActionListener listener)

如果需要连接WIFI热点,连接之前也是要判断热点的加密方式的,然后加载相应的网络参数


————————————————
版权声明:本文为CSDN博主「睡着的海豚」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/downloadname/article/details/77864537

在 Android 13 及以上版本中,可以使用 `WifiManager.LocalOnlyHotspotReservation` 类来创建和管理热点。下面是一个示例代码,演示如何使用 `WifiManager.LocalOnlyHotspotReservation` 类创建并启用热点,同时设置热点名称、密码和加密方式: ```java WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); WifiManager.LocalOnlyHotspotCallback callback = new WifiManager.LocalOnlyHotspotCallback() { @Override public void onStarted(WifiManager.LocalOnlyHotspotReservation reservation) { super.onStarted(reservation); String ssid = reservation.getWifiConfiguration().SSID; // 获取热点名称 String password = reservation.getWifiConfiguration().preSharedKey; // 获取热点密码 int authType = reservation.getWifiConfiguration().allowedKeyManagement.get(0); // 获取加密方式 // 在这里可以做一些启动热点成功后的操作 } @Override public void onStopped() { super.onStopped(); // 在这里可以做一些停止热点后的操作 } @Override public void onFailed(int reason) { super.onFailed(reason); // 在这里可以做一些启动热点失败后的操作 } }; WifiConfiguration wifiConfiguration = new WifiConfiguration(); wifiConfiguration.SSID = "Hotspot Name"; // 设置热点名称 wifiConfiguration.preSharedKey = "Hotspot Password"; // 设置热点密码 wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); // 设置加密方式,这里使用 WPA_PSK wifiManager.startLocalOnlyHotspot(wifiConfiguration, callback, new Handler()); // 开启热点 ``` 需要注意的是,不是所有的加密方式都被 Android 系统所支持。在上面的示例代码中,我们使用了 WPA_PSK 加密方式,这是一种常用的加密方式。您可以根据实际需要选择合适的加密方式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值