NEHotspotConfiguration WPA / WPA2密码长度无效

时间:2019-01-16 09:03:48

标签: ios swift

当我使用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)
}

1 个答案:

答案 0 :(得分:0)

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

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

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