聊一聊,如何解密、分析LoRaWAN数据包?
时间:2022-07-25
本文章向大家介绍聊一聊,如何解密、分析LoRaWAN数据包?,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
LoRaWAN中规定了7种不同的数据包,每种数据包又有不同的字段,除过“入网请求”和“入网回复”,其他的数据包都是AES-128加密的,如何明显的看出每个字段对应的数据以及解密呢?试试下面这个工具。
这个工具是用JavaScript写的,其中用到了一些依赖库,而npm就可以一次性把这些依赖库下载下来,因此我们先要安装npm这个工具。
sudo apt install npm
输入y,等待安装完成。
npm -v
说明已经安装成功。
接下来,正式安装工具:
npm install lora-packet
等待安装完成,安装完成后,如下:
用法说明:
lora-packet-decode [--nwkkey <NwkSKey> --appkey <AppSKey> --cntmsb <fCntMSB>] --{hex|base64} <data>
这里要说明一下,命令中的参数nwkkey表示NwkSkey,appkey表示AppSkey。
其中:
[]:内的内容意思是:可写可不写
{}:那就必须要在{}内给出的选择里选一个
<>:表示必选
用法示例
(1)入网请求数据包分析:
bin/lora-packet-decode
--hex 00B14781E3765F9B3CE50000FF0C010100727A8C4307D9
(2)入网回复数据包分析:
bin/lora-packet-decode --hex 204d6e5d25d464b81b78fb0c4ed1214f96
(3)不需要确认上行数据包分析:
bin/lora-packet-decode
--appkey 0e91ef587176bec1cbc185385ba82b18
--nwkkey c6b788a004380419d582e783d7c677a2
--hex 40DE6D2707000000DE11B4E3748D7BFE017F621FEFE2E2
(4)需要确认上行数据包分析:
bin/lora-packet-decode
--appkey 0e91ef587176bec1cbc185385ba82b18
--nwkkey c6b788a004380419d582e783d7c677a2
--hex 80DE6D270700010005DB351121DAEB0BD87FAAD212
(5)不需要确认下行数据包分析:
bin/lora-packet-decode
--appkey 0e91ef587176bec1cbc185385ba82b18
--nwkkey c6b788a004380419d582e783d7c677a2
--hex 60de6d2707200100dd2a6ec398bed0
上面演示了5种不同的数据包,剩余2种可类比。
——————END——————
- Flash/Flex学习笔记(46):正向运动学
- 异步Socket处理的一些测试值
- .Net中DES加密的细节问题
- 分布式监控系统Zabbix--完整安装记录 -添加web页面监控
- .Net中使用带UI的OCX的方法
- 2017数据科学领域15大热门GitHub项目
- 简单分页的性能优化
- Flash/Flex学习笔记(42):坐标旋转
- 分布式监控系统Zabbix-完整安装记录 -添加端口监控
- Flash/Flex学习笔记(40):弹性运动续--弹簧
- 表格样式—粗边框细表格线
- 分布式监控系统Zabbix--完整安装记录 -添加apache监控
- Flash/Flex学习笔记(38):缓动动画
- 把EmEditor改造成简单的Word
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 滴滴出行数据分析师面试经验
- 如何制作推论统计分析报告
- 全局唯一 ID 服务的分布式ID生成系统
- SpringBoot 国际化实现跨地区的多语言切换
- MySQL 死锁产生原因和解决方法
- 手把手教你ShardingSphere和Mybatis拦截器实现特殊字段动态切换加密
- Swagger3.0官方starter诞生,可以扔掉那些野生starter了
- Prometheus 入门教程(一):Prometheus 快速入门
- 开发|ShiroConfig实现基础拦截
- 推荐几个 VS Code 扩展、主题和字体
- 万字长文 | 这可能是东半球最保姆级的后台服务器开发学习路线
- Python|对多角星的绘制
- Pythyon|当中秋遇上国庆
- 清华老哥要是会 screen,是不是就不用拖着电脑骑车了
- Python|用turtle画笔制作奥运五环