3E4424237952324825077A09503005702970D754206CF3FFA5A2EE90103E42049140ACA625243A7DC4550DB811208D8299D7A34EB9ECBEE9CD751A685F0FF05D1A3D004F320600211B
这是我从wm-bus(OMS)水表收到的数据包,它是CRC字节的条带。
当我从OMS文档中得到它时,这是CBC的初始向量:
24237952324825070909090909090909
AES密码为:1111111111111111
当我得到它时,需要解码的第一个AES块是:
702970d754206cf3ffa5a2ee90103e42
解码后的前两个字节应为2f 2f,但它们不是。
所以如果有人对wm-bus和OMS有任何经验,请帮忙。
答案 0 :(得分:2)
如果你没有得到0x2F 0x2F
,那么简短的回答是:你拿了错误的钥匙。
<强>详情:强>
您似乎采用了正确的字节并为此OMS电报派生了正确的IV。如果解密部分的前2个字节不会导致0x2F 0x2F
,那么这表示您的此电报有错误的AES密钥。
你说你的钥匙是1111111111111111 - 但是这是什么? OMS的AES-CBC密钥使用16字节(128位)。您只有16个字符,但要以十六进制表示16个字节,则需要32个字符。所以这把钥匙有点可疑:
0x01010101010101010101010101010101
无效。
0x31313131313131313131313131313131
(ASCII中为16倍)
但是我用
成功解密了0x11111111111111111111111111111111
//Decrypted telegram:
3E 44 24 23 79 52 32 48 25 07 7A 09 50 30 05 2F 2F 0C 13 00 02 00 00 02 5A F5 00 02 FD 17 00 10 02 FD 74 ED 16 C2 01 6C DF 17 CC 01 13 00 02 00 00 2F 2F 2F 2F 2F 2F 2F 2F 2F 2F 2F 2F 2F 2F
所以最后看起来你只拿了钥匙的一半,这就是解密失败的原因。