我从一台正确连接到 WiFi 网络并使用 WPA-TKIP 密码的 Windows 7 计算机上导出了无线网络连接配置文件。导出的 xml 文件显示了正确的设置和一个keyMaterial
我只能猜测是加密密码的节点。
当我将 xml 带到另一台 Windows 7 计算机并使用导入它时netsh wlan add profile filename="WiFi.xml"
,它会正确添加配置文件的 SSID 和加密类型,但会弹出一个气球提示我需要输入密码。
有没有办法将密码与所有其他设置一起导入,或者我是否遗漏了有关添加配置文件的某些信息?
以下是删除了个人信息的导出的 xml:
<?xml version="1.0"?>
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
<name>[removed]</name>
<SSIDConfig>
<SSID>
<hex>[removed]</hex>
<name>[removed]</name>
</SSID>
<nonBroadcast>false</nonBroadcast>
</SSIDConfig>
<connectionType>ESS</connectionType>
<connectionMode>auto</connectionMode>
<autoSwitch>false</autoSwitch>
<MSM>
<security>
<authEncryption>
<authentication>WPAPSK</authentication>
<encryption>TKIP</encryption>
<useOneX>false</useOneX>
</authEncryption>
<sharedKey>
<keyType>passPhrase</keyType>
<protected>true</protected>
<keyMaterial>[removed]</keyMaterial>
</sharedKey>
</security>
</MSM>
</WLANProfile>
任何帮助或建议都非常感谢。谢谢。
更新:似乎如果我使用导出设置key=clear
,密码将存储在不受保护的文件中,我可以毫无问题地将文件导入另一台计算机。我已更新我的问题以反映我的发现。
答案1
key=clear
导出配置文件时只需使用该参数。
netsh wlan export profile key=clear
现在密码/密钥将以明文形式存储在 XML 文件中。导入配置文件时(如上所述),系统不会提示您输入密码。
答案2
问题在于,加密的密码是使用您导出配置的机器上的机器特定密钥加密的。您可以将该 xml 文件导入回同一台机器,这样就可以正常工作。但它无法在另一台机器上工作,因为第二台机器没有相同的机器特定密钥,无法解密密码。
我不太确定 netsh 使用什么作为特定于机器的密钥,或者是否可以将其从一个系统克隆到另一个系统。
答案3
Ryan 说得对,密钥具有机器专用加密。以下是解决方案:
打开 XML 文件并找到以下行:
<protected>true</protected>
更改为:
<protected>false</protected>
您将在下面看到加密的行:
<keyMaterial>01000000D08C9DDF0115D1118</keyMaterial>
将其更改为纯文本形式的密钥:
<keyMaterial>Yourkey</keyMaterial>
注意:这意味着您的无线密钥将以明文形式保存,并且有权访问该文件的每个人都可以读取您的无线密钥。但这样做是可行的!