BLE 设备通过设备地址和类型来标识设备,地址长度为48bit,即6个字节。
设备应使用至少一种类型的设备地址,并且可以同时包含两者。
一个BLE设备的标识地址(Identity Address)可以Public Device Address 或 Random Device Address。如果设备正在使用可解析的私有地址,它也应该有一个身份地址。
设备地址又可细分为一下几种类型:
1.Public device address
由 24-bit 的 company_id 和 24-bit 的 company_assigned 组成。
特点:需要购买,成本较高;安全性差。
2.Random device address
2.1 Static device address
要求:random part 不能为全1或全0。
特点:每个上电周期不可以改变;
每次重新上电可以重新生成,但连接信息会丢失;
2.2 Non-resolvable private address
要求:random part 不能为全1或全0;不能和Public device address相同。
特点:会定时更新,更新的周期是由 GAP 规定的,一般建议是十五分钟更新一次。
该类型地址如其名,是不可以被解析的。
2.3 Resolvable private address
要求:random part 不能为全1或全0;
特点:由 24位prand和 24hash 值构成,其中hash = ah(IRK, prand)。
当对端 BLE 设备扫描到该类型的蓝牙地址后,会使用保存在本机的 IRK,和该地址中的 prand,进行同样的 hash 运算,并将运算结果和地址中的 hash 字段比较,相同的时候,才进行后续的操作;
会定时更新,更新的周期是由 GAP 规定的,一般建议是十五分钟更新一次。