Android解析B24 BLE广播包:无法提取公斤重量
解决B24 BLE公斤秤XOR解密提取重量问题
核心XOR解密逻辑
根据B24技术手册第14页说明,使用View PIN 0000进行XOR解密的操作步骤如下:
1. 数据与密钥的字节转换
- 加密数据:将十六进制字符串(如你提供的
DDF1F084)转换为字节数组 - 解密密钥:PIN
0000对应的十六进制字节数组为0x00, 0x00, 0x00, 0x00(若手册示例中密钥为PIN的ASCII码,则替换为0x30, 0x30, 0x30, 0x30,需结合手册示例验证)
2. 逐字节XOR运算
XOR运算规则:解密字节 = 加密字节 ^ 密钥字节。由于XOR运算可逆:
- 若密钥为全0字节,解密后的数据与加密数据完全一致
- 若密钥为ASCII格式的"0000",则需对每个字节单独计算(如
0xDD ^ 0x30 = 0xED)
结合设备返回数据的解析步骤
你的设备返回数据示例:
0166786C5FDDF1D260700D0A27 0166786C5FDD0EE73C700D0A27
根据手册第4页的厂商特定数据格式,先提取加密重量段:
- 固定协议前缀:
0166786C5F - 加密重量数据:第一条数据中的
DDF1D260、第二条中的DD0EE73C(对应你提到的DDF1F084为不同重量下的加密值)
Java代码实现解密与重量提取
在你的PruebaConexion18_12_2023Activity中添加以下方法:
// 十六进制字符串转字节数组 private byte[] hexStringToByteArray(String hex) { int len = hex.length(); byte[] data = new byte[len / 2]; for (int i = 0; i < len; i += 2) { data[i / 2] = (byte) ((Character.digit(hex.charAt(i), 16) << 4) + Character.digit(hex.charAt(i+1), 16)); } return data; } // XOR通用解密方法 private byte[] decryptWithXOR(byte[] encryptedData, byte[] key) { byte[] decrypted = new byte[encryptedData.length]; for (int i = 0; i < encryptedData.length; i++) { decrypted[i] = (byte) (encryptedData[i] ^ key[i % key.length]); } return decrypted; } // 从解密数据提取公斤值(需结合手册14页的重量格式调整) private float extractWeight(byte[] decryptedData) { // 示例:假设解密后为4字节大端无符号整数,除以100得到带两位小数的公斤值 int weightRaw = ((decryptedData[0] & 0xFF) << 24) | ((decryptedData[1] & 0xFF) << 16) | ((decryptedData[2] & 0xFF) << 8) | (decryptedData[3] & 0xFF); return weightRaw / 100.0f; }
使用示例
// 从设备返回数据中提取的加密重量段 String encryptedHex = "DDF1F084"; byte[] encryptedBytes = hexStringToByteArray(encryptedHex); // 密钥:PIN 0000的十六进制字节数组(ASCII格式则替换为new byte[]{0x30,0x30,0x30,0x30}) byte[] key = new byte[]{0x00, 0x00, 0x00, 0x00}; // 执行解密 byte[] decryptedBytes = decryptWithXOR(encryptedBytes, key); // 提取并打印重量 float weightKg = extractWeight(decryptedBytes); Log.d("ScaleWeight", "当前重量:" + weightKg + "kg");
验证与调整
- 若解密结果不符合预期,优先核对手册第14页示例,确认密钥格式(十六进制/ASCII)
- 重量转换逻辑需匹配手册中定义的重量数据格式(如字节顺序、小数位偏移规则)
内容的提问来源于stack exchange,提问作者vLopez
相关产品推荐
相关产品推荐

