当我使用NEHotspotConfigurationManager加入具有64个十六进制数字的wpa2网络时,出现错误:


  NEHotspotConfiguration无效的WPA / WPA2密码长度


我从文档中得到了原因:


  对于WPA或WPA2个人网络,为8-63个字符


但是,有解决方案吗?

我的代码:

let pwd = "123456789012345678901234567890123456789012345678901234567890abcd"
let hotspot = NEHotspotConfiguration(ssid: ssid, passphrase: pwd, isWEP: false)
NEHotspotConfigurationManager.shared.apply(hotspot) { (error) in
    completionHandler?(error)
}

最佳答案

您正在尝试连接PMK(配对主密钥),但是API需要PSK(预共享密钥,又名wifi密码)。像这样从网络SSID和PSK计算PMK:

PMK = PBKDF2-SHA1(PSK, ESSID, 4096)


因此,如果API不接受预先计算的PMK,则必须使用SSID + PSK进行连接。

关于ios - NEHotspotConfiguration无效的WPA/WPA2密码长度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54213518/

10-09 10:01