判別WEP的ASCII與Hex型態之密碼

這是之前的一小則心得小記,一直記錄在桌面便條紙上,整理了一下。WEP 的密碼長度分為 40bits 和 104bits ,若是換成 byte 單位是 5bytes 和 13bytes,也就是 5 或 13 個 ASCII 字元。在 Linux 上,我們可以用 iwconfig 來設定 WEP 的 ASCII 密碼:
40bits 用 ASCII 表示:
iwconfig wifi0 key "s:12345"

104bits 用 ASCII 表示:
iwconfig wifi0 key "s:1234567890abc"

不過有些時候,WEP 會用十六進位表示密碼,因為每個字元由兩位十六進位碼表示,所以我們可以看到很長的密碼,用 iwconfig 來設定的話像這樣:
40bits 用 16 進位表示:
iwconfig wifi0 key "AABBCCDDEE"

104bits 用 16 進位表示:
iwconfig wifi0 key "AABBCCDDEEFF11223344556677"

由此可見,在一般情況下,只有在 5 和 13 個字元時會用 ASCII 表示,而其它字數時都是 16 進位型態,所以若是我們寫一個程式,判別用戶所輸入的 WEP 密碼型態,就可以用這種規則去識別。

留言

  1. 我以為應該是要依照 802.11 beacons 或 probe responses 來建議使用者輸入多長的字串。 :-)

    回覆刪除
  2. 照你說所的其實沒錯,判斷 WEP-40 或 WEP-104 並不是大問題,但還是會碰到 ASCII 和 HEX 的問題。

    在 UI 介面上設計,應該是不要讓使用者選 Type,能夠自動識別比較好。

    回覆刪除

張貼留言

這個網誌中的熱門文章

有趣的邏輯問題:是誰在說謊

Web 技術中的 Session 是什麼?

淺談 USB 通訊架構之定義(一)

淺談 USB 通訊架構之定義(二)

Reverse SSH Tunnel 反向打洞實錄