这篇文章简要分析一下为什么有4个WEP KEY,及其中的一些原因。

SPEC

用过AP的都知道,AP中有4个WEP KEY,但是为什么要设置4个呢,这个是WEP帧的格式决定的:

图中的keyid是2个比特,可以代表4个keyid,也就是对应AP中的4个keyid,若是AP和STA设置的不一样,就会连不上。

抓个包来看下吧(用一块便宜的网卡):

根据AP的设定:

下面是所抓的包:

这里可以对应起来了。

AP

有兴趣的话可以看下TPLINK写的文档:

http://service.tp-link.com.cn/detail_article_12.html

从图中可以看到AP中的四个栏位。

这里为什么有16进制和ASCII码呢,

WEP的密钥模式有 

WEP64(KEY为40bit,即10位HEX或者5位ASCII) 例:12345ABABA 或者 Xpass
WEP128 (KEY为104bit, 即26位HEX或者13位ASCII) 例:12300000000000000000000000 或者 apppppppppppp

换算关系
1位HEX = 4bit
1位ASCII = 8bit

总的来说有两种模式:

Standard -    24 + 40 = 64 bit RC4 key

 Vendors -   24 + 104 = 128 bit RC4 key

24bit是key的IV

STA

下面是win7下面的截图,说明选择key index是不可避免的:

下面以linux为例,解析一下linux里面是怎么做的

先给出wpa_supplicant 的配置文件:

# Shared WEP key connection (no WPA, no IEEE 802.1X) using Shared Key
# IEEE 802.11 authentication
#network={
# ssid="static-wep-test2"
# key_mgmt=NONE
# wep_key0="abcde"
# wep_key1=0102030405
# wep_key2="1234567890123"
# wep_tx_keyidx=0
# priority=5
# auth_alg=SHARED
#}

这里的wep_tx_keyidx就是KeyID,然后里面有分别三个wep key。

以mac80211的linux driver为例,若这里只填一个wep_key0的时候,上层调用的set_key接口会分别set 4个key

分别是wep_key0,0,0,0  为什么有三个都是0呢,因为这里没有填其他3个,默认是空的key。当你四个都自己填好之后,set_key就会将

4个key分别传递到driver,同时,也会将key的index告诉driver,让driver将key放到对应的硬件的四个栏位里面。

这里有这样一个现象,当你的keyindex和密码填错时,有时候会一直尝试重连,有时候虽然连接成功了,但是dhcp包会一直TX不出去。

当然了,这里不推荐使用WEP,但是厂商为了做兼容性也只能每次都将WEP的支持考虑进去。

对于AP中为什么有4个WEP KEY的分析的更多相关文章

  1. SAP 标准单价、移动单价在 AP 中的影响--(详细)

    今天我将向大家介绍下SAP中两种单价模式在系统中所产生的影响,先主要讲讲在AP中影响,它主要有两个方面产生影响(物料收货migo,发票校验miro). 演示背景(假设以下都为本位币交易): 库存(单价 ...

  2. Credit Memo和Debit Memo在AR以及AP中的概念比较

    AR和AP中都有Credit Memo和Debit Memo的概念, 但是其含义和用法完全不一样,比较难懂,现在整理如下:AR中的CreditMemo和DebitMemo是和客户打交道:AR中的Cre ...

  3. UWP中新加的数据绑定方式x:Bind分析总结

    UWP中新加的数据绑定方式x:Bind分析总结 0x00 UWP中的x:Bind 由之前有过WPF开发经验,所以在学习UWP的时候直接省略了XAML.数据绑定等几个看着十分眼熟的主题.学习过程中倒是也 ...

  4. foreach属性-动态-mybatis中使用map类型参数,其中key为列名,value为列值

    http://zhangxiong0301.iteye.com/blog/2242723 最近有个需求,就是使用mybatis时,向mysql中插入数据,其参数为map类型,map里面的key为列名, ...

  5. Android中Preference的使用以及监听事件分析

    在Android系统源码中,绝大多数应用程序的UI布局采用了Preference的布局结构,而不是我们平时在模拟器中构建应用程序时使用的View布局结构,例如,Setting模块中布局.当然,凡事都有 ...

  6. 【原创】【ViewPager+Fragment】ViewPager中切换界面Fragment被销毁的问题分析

    ViewPager中切换界面Fragment被销毁的问题分析   1.使用场景 ViewPager+Fragment实现界面切换,界面数量>=3   2.Fragment生命周期以及与Activ ...

  7. 转载【ViewPager+Fragment】ViewPager中切换界面Fragment被销毁的问题分析

    ViewPager中切换界面Fragment被销毁的问题分析  原文链接 http://www.cnblogs.com/monodin/p/3866441.html 1.使用场景 ViewPager+ ...

  8. android中使用jni对字符串加解密实现分析

    android中使用jni对字符串加解密实现分析 近期项目有个需求.就是要对用户的敏感信息进行加密处理,比方用户的账户password,手机号等私密信息.在java中,就对字符串的加解密我们能够使用A ...

  9. Mysql中Insert into xxx on duplicate key update问题

    要点:Insert into xxx on duplicate key update可以在唯一索引重复的情况下,进行更新操作.           (1) 插入里边的字段应该只有一个 唯一索引:   ...

随机推荐

  1. Windows下HG服务器的搭建

    1.环境和所需工具安装 1. 安装python-2.7.9.exe 2. 安装mercurial-3.2.3.win32-py2.7.exe 3. 安装mercurial-3.2.3-x86.msi ...

  2. JDK自带工具一览表。妈妈再也不用担心你到处去下载小软件了~~

    原来JDK早早就给我准备好了要用到的工具..反编译,JVM性能监视.诊断. JDK(Java Development Kit)是Java程序员最核心的开发工具,没有之一. JDK是一个功能强大的Jav ...

  3. 获取某地的经纬度 && 通过经纬度获取相应的地理位置

    最近要通过一个经纬度判断该经纬度是否位于某个地区内,所以通过网上查找资料,整合后出了下面的内容. 1.通过地址获取改地址的经纬度 /** * @param addr * 查询的地址 * @return ...

  4. Class to connect postgres with python in psycopg2

    For we need to connect the postgres db in project very frequently, so write the follows class: impor ...

  5. AMO olap Test C# generate tsql and mdx

    通过AMO访问online的cube,生成等值的TSql和mdx 自动生成等值的TSQL和MDX进行Cube测试.其中难度比较大的部分是拼接TSQL. 暂时不处理calculations,只除理met ...

  6. Hadoop step by step _ install and configuration environment

    1.安装centos linux系统. 2.配置静态IP 3.配置防火墙 4.添加hadoop用户 5.检查并安装jdk 配置环境变量 6.配置sshd服务 7.配置ssh免密码登录 8.格式化nam ...

  7. hdu1710(二叉树的历遍)

    /* Binary Tree Traversals Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O ...

  8. 孙鑫视频学习:VS2010中找不到【Tab order】菜单项

    在学习孙鑫视频中,修改Tab顺序时,找不到VC6.0中提到的[Layout]->[Tab order]菜单项,但VC2010中可以用Ctrl+D调出来Tab顺序,或者[格式]->[Tab键 ...

  9. python中*args和**args的不同

    上一段代码,大家感受一下 def test_param(*args): print(args) def test_param2(**args): print(args) test_param('tes ...

  10. POJ 1410 Intersection --几何,线段相交

    题意: 给一条线段,和一个矩形,问线段是否与矩形相交或在矩形内. 解法: 判断是否在矩形内,如果不在,判断与四条边是否相交即可.这题让我发现自己的线段相交函数有错误的地方,原来我写的线段相交函数就是单 ...