判別WEP的ASCII與Hex型態之密碼
這是之前的一小則心得小記,一直記錄在桌面便條紙上,整理了一下。WEP 的密碼長度分為 40bits 和 104bits ,若是換成 byte 單位是 5bytes 和 13bytes,也就是 5 或 13 個 ASCII 字元。在 Linux 上,我們可以用 iwconfig 來設定 WEP 的 ASCII 密碼:
不過有些時候,WEP 會用十六進位表示密碼,因為每個字元由兩位十六進位碼表示,所以我們可以看到很長的密碼,用 iwconfig 來設定的話像這樣:
由此可見,在一般情況下,只有在 5 和 13 個字元時會用 ASCII 表示,而其它字數時都是 16 進位型態,所以若是我們寫一個程式,判別用戶所輸入的 WEP 密碼型態,就可以用這種規則去識別。
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 密碼型態,就可以用這種規則去識別。
我以為應該是要依照 802.11 beacons 或 probe responses 來建議使用者輸入多長的字串。 :-)
回覆刪除照你說所的其實沒錯,判斷 WEP-40 或 WEP-104 並不是大問題,但還是會碰到 ASCII 和 HEX 的問題。
回覆刪除在 UI 介面上設計,應該是不要讓使用者選 Type,能夠自動識別比較好。