PHP - WiFi 网络 ID 和十六进制密钥的密码
PHP - WiFi Network Id and passphrase to hexadecimal key
要手动配置 WiFi 网络,我需要十六进制密钥。
在Ubuntu中,我可以用这个命令获取它:
wpa_passphrase network passphrase
结果是:
network={
ssid="network"
#psk="passphrase"
psk=72feda58f99812cd6a4a075047270e361e3ae18f8cb191eb8d55ac07f928a466
}
那..我怎样才能得到PHP的psk?
编辑:我这样做:
<?php
$fp = fopen("data.txt", "w+");
if(!$fp) die ("Errore nell'apertura del file");
exec("wpa_passphrase network passphrase",$output);
$conf = "";
for($i=0;$i<5;$i++)
$conf .= $output[$i]."";
fwrite($fp,$conf);
fclose($fp);
exec("sudo cp data.txt /etc/wpa_supplicant.conf"); //this doesn't work!
echo "ok<br>".$conf
?>
我已经解决了,这是代码:
<?php
$fp = fopen("data.txt", "w+");
if(!$fp) die ("Errore nell'apertura del file");
exec("wpa_passphrase network passphrase",$output);
$conf = "";
for($i=0;$i<5;$i++)
$conf .= $output[$i]."\n";
fwrite($fp,$conf);
fclose($fp);
exec("sudo cp data.txt /etc/wpa_supplicant.conf");
echo "1";
?>
但是,要执行 sudo
命令,我必须将 "www-data" 用户添加到 sudoers 文件中。我在 this reply
之后做了这个
如果有人对此仍然感兴趣:我通过阅读 wpa_passphrase and comparing the result to the Wireshark PSK tool.
的来源,使用简单的 PHP 解决了这个问题
function wpa_passphrase($ssid, $passphrase) {
$bin = hash_pbkdf2('sha1', $passphrase, $ssid, 4096, 32, true);
return bin2hex($bin);
}
$psk = wpa_passphrase('network', 'passphrase');
需要 PHP >= 5.5
要手动配置 WiFi 网络,我需要十六进制密钥。
在Ubuntu中,我可以用这个命令获取它:
wpa_passphrase network passphrase
结果是:
network={
ssid="network"
#psk="passphrase"
psk=72feda58f99812cd6a4a075047270e361e3ae18f8cb191eb8d55ac07f928a466
}
那..我怎样才能得到PHP的psk?
编辑:我这样做:
<?php
$fp = fopen("data.txt", "w+");
if(!$fp) die ("Errore nell'apertura del file");
exec("wpa_passphrase network passphrase",$output);
$conf = "";
for($i=0;$i<5;$i++)
$conf .= $output[$i]."";
fwrite($fp,$conf);
fclose($fp);
exec("sudo cp data.txt /etc/wpa_supplicant.conf"); //this doesn't work!
echo "ok<br>".$conf
?>
我已经解决了,这是代码:
<?php
$fp = fopen("data.txt", "w+");
if(!$fp) die ("Errore nell'apertura del file");
exec("wpa_passphrase network passphrase",$output);
$conf = "";
for($i=0;$i<5;$i++)
$conf .= $output[$i]."\n";
fwrite($fp,$conf);
fclose($fp);
exec("sudo cp data.txt /etc/wpa_supplicant.conf");
echo "1";
?>
但是,要执行 sudo
命令,我必须将 "www-data" 用户添加到 sudoers 文件中。我在 this reply
如果有人对此仍然感兴趣:我通过阅读 wpa_passphrase and comparing the result to the Wireshark PSK tool.
的来源,使用简单的 PHP 解决了这个问题function wpa_passphrase($ssid, $passphrase) {
$bin = hash_pbkdf2('sha1', $passphrase, $ssid, 4096, 32, true);
return bin2hex($bin);
}
$psk = wpa_passphrase('network', 'passphrase');
需要 PHP >= 5.5