X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.api.uuid%2Fsrc%2Forg%2Fargeo%2Fapi%2Fuuid%2FNodeIdSupplier.java;fp=org.argeo.api.uuid%2Fsrc%2Forg%2Fargeo%2Fapi%2Fuuid%2FNodeIdSupplier.java;h=81d368d2c8c651c37ea9ab48f7f048db98351f16;hb=ee0a9f240a5da3a1437dda5abe7a1c46c5a3a8e9;hp=94ec50da4b9ff76d3eb86fe94425d6e1ec9dddce;hpb=73ff3654ba6d4a8381b9be5594d0d56f214fac58;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.api.uuid/src/org/argeo/api/uuid/NodeIdSupplier.java b/org.argeo.api.uuid/src/org/argeo/api/uuid/NodeIdSupplier.java index 94ec50da4..81d368d2c 100644 --- a/org.argeo.api.uuid/src/org/argeo/api/uuid/NodeIdSupplier.java +++ b/org.argeo.api.uuid/src/org/argeo/api/uuid/NodeIdSupplier.java @@ -1,13 +1,13 @@ package org.argeo.api.uuid; +import java.security.SecureRandom; import java.util.function.Supplier; /** A factory for node id base */ public interface NodeIdSupplier extends Supplier { static long toNodeIdBase(byte[] node) { assert node.length == 6; - return UuidFactory.LEAST_SIG_RFC4122_VARIANT - | (node[0] & 0xFFL) // + return UuidFactory.LEAST_SIG_RFC4122_VARIANT | (node[0] & 0xFFL) // | ((node[1] & 0xFFL) << 8) // | ((node[2] & 0xFFL) << 16) // | ((node[3] & 0xFFL) << 24) // @@ -19,4 +19,10 @@ public interface NodeIdSupplier extends Supplier { return (nodeId[0] & 1) != 0; } + static byte[] randomNodeId() { + SecureRandom random = new SecureRandom(); + byte[] nodeId = new byte[6]; + random.nextBytes(nodeId); + return nodeId; + } }