wpa_passphrase с шестнадцатеричным SSID

Как я могу сгенерировать шестнадцатеричный пароль на основе шестнадцатеричного SSID?

объяснение

Я использую следующую команду для генерации шестнадцатеричного значения из строки Unicode:

$ echo -n "→ MyUnicodeSSID ←" | tr -d "\n" | od -A n -t x1 | tr -d " " | tr -d "\n"
--> e28692204d79556e69636f64655353494420e28690

Однако, если я использую шестнадцатеричное значение для wpa_password, я получаю следующий вывод, который использует шестнадцатеричное значение в качестве строкового ввода:

$ wpa_passphrase e28692204d79556e69636f64655353494420e28690 "MySecretPa$$word"

network={
    ssid="e28692204d79556e69636f64655353494420e28690"
    #psk="MySecretPa6100word"
    psk=b4c850a5c05769d9afb828cda94341f734f40aa4bd606a47844ca7f279b55378
}

1 ответ

Попробуйте использовать SSID из вывода wpa_cli scan затем wpa_cli scan_results, Обязательно используйте P перед SSID, т.е.

network={
    key_mgmt=NONE
    ssid=P"test\x00abc"
}

Увидеть:

http://lists.infradead.org/pipermail/hostap/2012-August/026461.html

Если ваш ssid является facepalm , сначала получите шестнадцатеричный код для части utf8:

  % echo -n "" | tr -d "\n" | od -A n -t x1 | sed 's/ /\\x/g'
\xf0\x9f\xa4\xa6

Затем используйте его как аргумент wpa_passphrase:

  % wpa_passphrase $'facepalm \xf0\x9f\xa4\xa6' testtest
network={
        ssid="facepalm "
        #psk="testtest"
        psk=99c17bf7e2950d33f9c1c470015487e2cfdfeb6824c9eeb2aab5402880ecd946
}

И то и другое ssid и passhprase находятся c-lang chars (wpa_passphrase.c).

Другие вопросы по тегам