Я предполагаю, что UUID генерируются одинаково во всем диапазоне 128-битного диапазона UUID.
Во-первых, ваше предположение может быть неверным, в зависимости от типа UUID (1, 2, 3 или 4).Начиная с Java UUID docs :
Существуют различные варианты этих глобальных идентификаторов.Методы этого класса предназначены для манипулирования вариантом Лича-Зальца, хотя конструкторы позволяют создавать любой вариант UUID (описан ниже).
Схема UUID варианта 2 (Leach-Salz) такова:следующее: Наиболее значимый длинный состоит из следующих полей без знака:
0xFFFFFFFF00000000 time_low
0x00000000FFFF0000 time_mid
0x000000000000F000 version
0x0000000000000FFF time_hi
Наименее значимый длинный состоит из следующих полей без знака:
0xC000000000000000 variant
0x3FFF000000000000 clock_seq
0x0000FFFFFFFFFFFF node
Поле варианта содержит значение, которое идентифицирует макет UUID.Описанная выше схема битов действительна только для UUID со значением варианта 2, которое указывает вариант Лича-Зальца.
Поле версии содержит значение, которое описывает тип этого UUID.Существует четыре различных основных типа UUID: на основе времени, безопасности DCE, на основе имени и случайно сгенерированных UUID.Эти типы имеют значения версии 1, 2, 3 и 4. соответственно.
Лучший способ сделать то, что вы делаете, - сгенерировать случайную строку с кодом, который выглядит примерно так ( source ):
public class RandomString {
public static String randomstring(int lo, int hi){
int n = rand(lo, hi);
byte b[] = new byte[n];
for (int i = 0; i < n; i++)
b[i] = (byte)rand('a', 'z');
return new String(b, 0);
}
private static int rand(int lo, int hi){
java.util.Random rn = new java.util.Random();
int n = hi - lo + 1;
int i = rn.nextInt(n);
if (i < 0)
i = -i;
return lo + i;
}
public static String randomstring(){
return randomstring(5, 25);
}
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(randomstring());
}
}
Если вы невероятно беспокоитесь о столкновениях или чем-то еще, я предлагаю вам base64
кодировать свой UUID, что должно уменьшить его размер.
Мораль истории: не полагайтесь на отдельные части UUID, так как они разработаны целостно.Если вам нужно полагаться на отдельные части UUID, обязательно ознакомьтесь с конкретным типом и реализацией UUID.