- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用扩展链路层在 C1 模式下解密来自 Kamstrup Multical21 的 wm-bus 电报。
负载连同 ELL 信息如下:23 44 2D 2C 45 45 71 63 1B 16 8D 20 6A 31 FB 7C 20 39 A3 79 60 4B 90 BD FC BE 8D D8 CB 18 CE 77 DC 41 CE 8C
分析 CI = 8D
我发现有一个 ELL 具有以下数据:CI(1 字节)CC(1 字节)ACC(1 字节)SN(4 字节)CRC(2 字节)
8D 20 6A 31 FB 7C 20 39 A3
文档说应该解密的缓冲区应包含来自 ELL 的 CRC,即:39 A3 79 60 4B 90 BD FC BE 8D D8 CB 18 CE 77 DC 41 CE 8C
我从制造商那里得到了 AES key :B9 7A 6D 4E C2 74 A4 6D 87 0E 31 27 D9 A0 AF 63
ELL 的初始化向量应为:M-field A-field CC-field SN-field FN BC
2D 2C 45 45 71 63 1B 16 20 31 FB 7C 20 00 00 00
解密后得到如下结果:08 3a 5f ce b2 8d 51 97 94 a2 5b fb 61 ab 2e c0
e4 20 c8 2a 43 ff 3a 75 6f 93 d0 ac 8c 79 b7 a1
因为开头没有2F 2F
,所以有问题!有人可以帮助我并告诉我做错了什么吗?提前致谢。
最佳答案
我查看了最新的卡姆鲁普文档(“无线 M-Bus 通信卡姆鲁普水表 - MULTICAL® 21 和 flowIQ® 水表模式 C1,符合 EN 13757-4:2013”)
当我解密你的数据包时,我发现:25877968217E8E01000000000000000000
首先,Kamstrup 解密的数据包似乎不是以 2F 2F 开头。
解密数据包的前 2 个字节应该是 PLCRC(我现在无法确认 - 不能立即访问定义 crc 多项式算法的标准),然后下一个字节是 79,这意味着它是一个紧凑帧,接下来的 4 个字节是另外 2 个 CRC,然后接下来的 2 个字节 0100 可能是信息,这是制造商特定的,我还不知道如何解释。
这个表应该是R type 1吧? (在表面上,“Con.:”参数的倒数第三个数字应该是 1)所以它的格式是 [Info][Volume][Target Volume] - 2 bytes, 4 bytes, 4 bytes - 我有点假设那,因为这个数据包是一个紧凑的数据包,所以我没有得到长数据包的实际格式,例如小数位数 - 通常你需要 - 但你的值是零?所以小数点无关紧要。 (“长”数据包当然是每 6 个数据包左右?)
我得到的 IV 是:2D2C454571631B162031FB7C20000000这和你的完全一样。
我使用的加密包是:39A379604B90BDFCBE8DD8CB18CE77DC41所以我排除了你身上的 CE 和 8C?当我把它们放进去时,解密后的数据包变成了:25877968217E8E01000000000000000000BB49我怀疑这几乎是同一个数据包,后面有更多的 crc 内容,所以我真的不明白你做了什么来解密,因为你的结果完全不同?
好吧,也许你使用 AES/CBC/NoPadding,就像在 OpenMUC 中一样。
Kamstrup 使用 AES/CTR/NoPadding。这就是他们不必解密 16 字节 block 的倍数的原因?在我的 Java 代码中看起来的方式如下:Cipher cipher = Cipher.getInstance("AES/CTR/NoPadding");
关于aes - WM-Bus扩展层解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29392226/
所以我有这个要求,它接收一个文档,然后需要在输出中创建一个或多个文档。 在这个过程中,需要判断文档是否已经存在,因为申请创建和更新场景有不同的操作。 在直接代码中,这会很简单(概念上) InputDa
我想知道在 IBM Integration Bus 中存储数据库参数的最佳位置在哪里。例如,如果我们有开发、测试和生产环境,每个环境都有一个单独的数据库(当然),那么如何最好地组织数据库连接属性的更改
我正在从事一个项目,在该项目中,我必须与连接的任何设备(ttyS0、ttyS1 或 ttyUSB0)进行一些串行通信。幸运的是,我遇到了一个非常有用的 stackoverflow 链接:“Simple
企业服务总线(ESB)、.NET 服务总线(Windows Azure AppFabric 服务总线)、NServiceBus、RhinoServiceBus、MassTransit 等。 我试图了解
我现在使用Virtual Box启动VM,版本是5.1.26 r117224(Qt5.6.2),但是当我尝试启动VM时,我看到了下面的错误消息: 00:00:29.246866 VMMDev: Gue
从这个周末开始,我每小时都会从我的服务器收到一封邮件,其中包含以下消息: /etc/cron.hourly/mcelog.cron: mcelog: Cannot access bus thresho
Oracle 是否有两个 ESB 产品:Aqualogic Service Bus 和 Oracle Service Bus,或者 ALSB 是否合并到 Oracle SB 产品中? 最佳答案 目前,
为什么我的 RootManageSharedAccessKey 连接字符串无效? 代码: 执行下面的代码时,我收到有关无效连接字符串的错误: serviceBusClient <- new Servi
一 点睛 消息中间件提供了系统之间的异步处理机制,比如在电商网站上支付订单之后,会触发库存计算,物流调度计算,甚至是营销人员绩效计算,报表统计等,诸如此类的操作一般会耗费比订单购买商品本身更多的时间,
基本了解CANopen网络中PDO映射的概念。它允许广播带有小 header 的实时数据。 它是怎样炼成的?如何设置我的设备以了解如何发送/接收 PDO?我需要某种软件吗? 最佳答案 很多问题的答案取
我想知道我们如何计算某些标准 CAN id 集的软件接受过滤器掩码。如果有人可以用示例解释这一点,那就太好了。还请建议一些链接/ Material 来学习 CAN 堆栈软件实现。 提前致谢。 最佳
什么是消息总线 1. 概念 在微服务架构中,通常会使用轻量级的消息代理来构建一个共用的消息主题来连接各个微服务实例, 它广播的消息会被所有在注册中心的微服务实例监听和消费,也称消息总线 2.
一 点睛 有这样一个场景,就是监控某个硬件设备的运行时数据,然后记录到数据库。 可以这样做:该硬件设备在运行的过程中,将一些性能信息等写入特殊的数据文件中,需要做的就是监控文件的变化,读取最后一行数据
I will use CANOpen in linux. In kernel, linux has socketcan and i have some questions for further im
我想用 corss_compiler D-bus 来武装。 工具链:arm-linux-gcc-3.4.1 配置选项:CC=arm-linux-gcc ./configure --prefix=/op
当您将多个连接连接到节点上的单个输出终端时会发生什么。 我找不到关于此的任何 IBM 文档,但工具包并没有阻止我这样做。 这只是一个例子,但我想知道当您对任何节点执行此操作时的一般行为,而不仅仅是输入
如何创建多个虚拟套接字并将它们链接在一起以创建虚拟总线? 我想模拟一个应用程序,其中许多节点通过 CAN 相互通信。 最佳答案 您所需要的只是 can-utils 中的 cangw 工具。 。创建两个
我正在使用Azure Service Bus SubscriptionClient.OnMessage方法;配置为最多同时处理5条消息。 在代码内,我需要等待所有消息完成处理后才能继续(正确关闭Azu
如何使用 C 列出 D-Bus sessionBus 中的所有名称? 我正在寻找C GIO相当于 dbus.list_names python method 我想列出“org.mpris.MediaP
这个问题已经有答案了: Why does modifying a string literal cause a segmentation fault? [duplicate] (1 个回答) 已关闭
我是一名优秀的程序员,十分优秀!