2016-09-06 7 views
1

私は、リプレイ攻撃を防ぐセキュリティ対策を組み込んだUUIDを作成しようとしています。私はタイムスタンプをUUIDに添付し、ビーコンを暗号化する予定です。暗号化によって16バイトのオブジェクトが作成されますが、ビーコン送信機ではUUIDが一貫した長さの文字列である必要があります。文字列の代わりにByteオブジェクトを送信できる方法はありますか?また、暗号化ビーコンが必要になります。私はする必要があります: beaconTransmitter.startAdvertising(ビーコン); タイムアウト(1秒)。 beaconTransmitter.stopAdvertising(ビーコン); と私のbeacontransmitメソッドを再帰的に呼び出しますか?Altbeaconsの暗号化

答えて

0

暗号化が実際に16バイトのオブジェクトを作成する場合は、16バイトの長さのUUIDに変換できるはずです。しかし、暗号化アルゴリズムは、一般的に出力としてはるかに長いバイト配列を作る

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

:のように単純にする必要があります。ハッシュを作るために暗号化された出力から16バイトを除いてすべてのバイトを削除することができます(これは基本的にEddystone-EIDのものです)。これは解読することができません。受信デバイスは、同じ値を計算するかどうかを調べるために、指定されたタイムスタンプに対して同じ暗号化計算を実行する必要があります。そうであれば、それはそれが一致したことを知っている。

はい、1つのタイムスタンプに基づいて広告を開始し、遅延を待ってから、新しいタイムスタンプに基づいて広告を開始するアプローチは確かに方法です。