Android 加密备用信标

Android 加密备用信标,android,bluetooth-lowenergy,altbeacon,Android,Bluetooth Lowenergy,Altbeacon,我正在尝试创建UUID,其中包含防止重播攻击的安全措施。我计划给UUID附加一个时间戳并加密信标。加密创建一个16字节的对象,但信标发送器要求UUID是长度一致的字符串。是否有一种方法可以传输字节对象而不是字符串。另外,我需要加密的信标随时间变化。我应该做一个: 信标传送者。开始传送(信标); 超时(1秒); 停止广告(信标); 并递归调用我的beacontransmit方法?如果您的加密真的生成了一个16字节的对象,那么您应该能够将其转换为一个UUID,也就是16字节长的UUID。它应该简单到

我正在尝试创建UUID,其中包含防止重播攻击的安全措施。我计划给UUID附加一个时间戳并加密信标。加密创建一个16字节的对象,但信标发送器要求UUID是长度一致的字符串。是否有一种方法可以传输字节对象而不是字符串。另外,我需要加密的信标随时间变化。我应该做一个: 信标传送者。开始传送(信标); 超时(1秒); 停止广告(信标);
并递归调用我的beacontransmit方法?

如果您的加密真的生成了一个16字节的对象,那么您应该能够将其转换为一个UUID,也就是16字节长的UUID。它应该简单到:

Identifier uuid = Identifier.fromBytes(byteArrayOfLength16, 0, 15, false);
然而,加密算法通常会生成更长的字节数组作为输出。您可以从加密的输出中删除除16个字节以外的所有字节以生成哈希(这基本上就是Eddystone EID所做的),但这将无法解密。接收设备必须对给定的时间戳执行相同的加密计算,以查看它是否计算相同的值。如果找到了,它就知道找到了匹配项


是的,基于一个时间戳开始广告,等待一个延迟,然后基于一个新的时间戳开始广告的方法肯定是可行的。

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

Identifier uuid = Identifier.fromBytes(byteArrayOfLength16, 0, 15, false);
然而,加密算法通常会生成更长的字节数组作为输出。您可以从加密的输出中删除除16个字节以外的所有字节以生成哈希(这基本上就是Eddystone EID所做的),但这将无法解密。接收设备必须对给定的时间戳执行相同的加密计算,以查看它是否计算相同的值。如果找到了,它就知道找到了匹配项

是的,基于一个时间戳开始广告,等待一个延迟,然后基于一个新的时间戳开始广告,这无疑是一种可行的方法