0
最近、私はUUIDを生成する方法を学びます。私はelasticsearchでクラスTimeBasedUUIDGenerator.javaを見つける。elasticsearch MacAddressProviderが武装したバイトを使用する理由
私はそれが現在のマシン(MacAddressProvide.java)を識別するためにMACアドレスを使用することがわかります。しかし、それはXORのMACアドレスランダムバイト(以下のコードスニペットとして)。私が知っているように、これはランダムにマックアドレスを作成し、競合の可能性を高めるでしょう。なぜ我々は直接MACアドレスを使用しないのですか?
public static byte[] getSecureMungedAddress() {
byte[] address = null;
try {
address = getMacAddress();
} catch (SocketException e) {
// address will be set below
}
if (!isValidAddress(address)) {
address = constructDummyMulticastAddress();
}
byte[] mungedBytes = new byte[6];
SecureRandomHolder.INSTANCE.nextBytes(mungedBytes);
for (int i = 0; i < 6; ++i) {
mungedBytes[i] ^= address[i];
}
return mungedBytes;
}