Skip to content

设备校验

硬件与手机连接后,需要向手机发校验内容。校验通过后才可正常使用 校验方式有两种:

  1. 密钥组:自定义一组秘钥进行校验。开发更简单,更适合一些低成本蓝牙设备。其中密码组长度越高安全性越高
  2. 内容校验:自定义内容,使用AES加密进行校验。内容随机,且每个设备不一样,安全性高。但是需要设备使用AES算法,且回复内容较长

秘钥组

相关概念

更换周期:按周期遍历密钥组里的秘钥

如,秘钥组里有12组秘钥,更换周期设置成一月。则设置之日起,第一个自然月使用第一组秘钥,下个月1号则会使用下一组,如此循环

秘钥组校验流程

  1. 在小机云网页的项目详情里设置秘钥组
  2. 把所有秘钥存进设备里
  3. 设备在连接时,APP会向服务器取出当前的秘钥(按周期变换),向设备秘钥发送前8位。
  4. 设备收到后,与预存的秘钥进行匹配
  5. 如果匹配到相应的秘钥,则回应此组秘钥里的第8位后的任意连续8位给APP 秘钥要求:
  6. 秘钥只支持数字和英文字母,区分大小写
  7. 密钥组长度尽量要长,建议12组或24组或更多,每组秘钥尽可能长,前8位不可以重复。单组秘钥至少需要16位。

查询密码和校验指令,请查看蓝牙文本协议

秘钥组校验案例

假设已经在小机云网页端,项目详情里设置了3组秘钥,更换周期为一个星期

并已经在设备里存入了所有的秘钥

36e8d6fef2ba155d922050a0c0b3c1a6

63bd1c2b5c0119eb57e60da60b1ee131

e097bf3879e3b945e7d0fe17715d7b29

则在设备使用指令查询秘钥,APP会下发第一组的前8位,36e8d6fe。设备拿到了该秘钥头后,与预存秘钥进行匹配,匹配到第一组,则设备发第一组的8位后面的任意8位到APP,如,55d92205。

校验成功,APP会返回:$XA#S#OK&6A

更多建议

  1. 建议设备存入比在网页上预设的更多秘钥,如100组。网页上只使用其中任意12组,且可以定期手动在网页更换这100组里的任意12组
  2. 密钥组长度尽量要长,建议12组或24组或更多,每组秘钥尽可能长,前8位不可以重复。单组秘钥至少需要16位。

内容校验

设备需要用指定的内容,按规定的格式,组合成校验内容。把校验内容加密后送给APP记得校验

设置内容校验格式

  • 进入小机云网页端并登录。登录后,点击项目卡片更多查看项目详情
  • 点击查看项目秘钥(ProjectSecrete)

设备发送内容校验

硬件向手机发送的校验内容的格式需要与校验内容格式一致

检验内容使用”.“进行分段,可使用的字段如下,字段顺序可随意调整。

校验内容需要与ProjectSecret进行AES/ECB/PKCS7 256加密后发送到手机。

MAC:必要,MAC地址

timestamp:必要,须为5分钟内的13位UTC时间戳

myContent:必要,该字段可以自定义内容,如改为9sdj93a,只允许字母与数字

projectId:可选

deviceId:可选

发送校验的指令,请查看蓝牙文本协议

AES计算工具

小机云调试工具

您可以使用小机云调试工具计算蓝牙校验内容 小机云调试工具

在线计算

AES在线计算

使用示例

设备与项目各项属性为:

projectId:1032n8e32sa9v2bdf3

deviceId:d83js021x91

mac:11:22:33:44:55:66(需要与创建设备时输入的MAC一致)

myContent:自定义内容为

ProjectSecret:B407CEA9A9DA7B9A088F81D42E217444

内容格式1:projectId.mac.key123.timestamp(自定义内容key123)

得到的校验内容为:1032n8e32sa9v2bdf3.11:22:33:44:55:66.key123.1726830773258

加密后的内容为:F04C39B790DCB413FA360FD786E71542912CB413A0658E28E2BDE8B6F77B5FD1C1BEF763B4E9DE0CC4A6C3F07C9D4E1A0926F9224383B6B9FE1B9360B804C006

内容格式2:mac.timestamp.deviceId.d73a9s1(自定义内容d73a9s1)

得到的校验内容为:11:22:33:44:55:66.1726830773258.d83js021x91.d73a9s1

加密后的内容为:62E45220EAB1AECFDA095517492B08DD2613248A39EC1B664272D35727F1083EB3DE48E7A40B39E896776190653D9E044C4651F7B2A02987EBFABE87C45A5617

在小机云调试工具里使用

在小机云调试工具中找到:蓝牙-->设备指令-->发送校验内容指令-->编辑。如下图

 

使用上面的”内容格式1“,则需要在小机云调试工具中填入

ProjectSecret:B407CEA9A9DA7B9A088F81D42E217444

内容1:1032n8e32sa9v2bdf3

内容2:11:22:33:44:55:66

内容3:key123

内容4:timestamp

点击确定。

设备与小机云蓝牙APP连接成功后(打开APP,手机保持亮屏),点击“发送校验内容”指令可以发送校验内容。如果成功会收到回复

$XGC_ACK#CHECK_KEYCONTENT#0#OK&#7e#

 

使用上面的”内容格式2“,则需要在小机云调试工具中填入

ProjectSecret:B407CEA9A9DA7B9A088F81D42E217444

内容1:11:22:33:44:55:66

内容2:timestamp

内容3:d83js021x91

内容4:d73a9s1