加密Altbeacons

时间:2016-09-06 20:16:57

标签: android bluetooth-lowenergy altbeacon

我正在尝试创建包含防止重放攻击的安全措施的UUID。我计划将时间戳附加到UUID并加密信标。加密创建一个16字节的对象,但信标发送器要求UUID是一个长度一致的字符串。有没有办法可以传输Byte对象而不是字符串。此外,我需要加密的信标随时间变化。我应该这样做:     beaconTransmitter.startAdvertising(信标);     超时(1秒);     beaconTransmitter.stopAdvertising(信标); 并递归调用我的beacontransmit方法?

1 个答案:

答案 0 :(得分:0)

如果您的加密实际上是一个16字节的对象,那么您应该能够将其转换为UUID,也是16字节长。它应该简单:

Identifier uuid = Identifier.fromBytes(byteArrayOfLength16, 0, 15, false);

但是,加密算法通常会将更长的字节数组作为输出。您可以从加密输出中删除除16个字节之外的所有字节以进行哈希(这基本上是Eddystone-EID所做的),但这将无法解密。接收设备必须对给定时间戳执行相同的加密计算,以查看它是否计算相同的值。如果确实如此,则表示已找到匹配。

是的,基于一个时间戳开始广告,等待延迟以及根据新时间戳开始广告的方法肯定是要走的路。