У меня есть куча строчек: все по 32 символа, символы из множества 0-9 a-f
Во всех позициях (0-31) символы распределены равномерно, кроме позиции 12 и 16.
В позиции 12- всегда символ 4
В позиции 16 - равновероятны символы b a 9 8
Это не похоже на md5, я насемплировал много рандомных строчек и там всегда все равновероятно.
Есть идеи, что это может быть?
В идеале хотелось бы понять как строчки были вычислены и если это обратимое преобразование, то провернуть фарш назад)
Понятно, что это может быть все что угодно, но может какая то хэш функция себя так ведет и эти конкретные позиции - какие то контрольные суммы или флаги или типа того.
По ответам выше один джентльмен был прав. Это действительно тип 4 UUID. Вот выдержка из документации.
/**
* Static factory to retrieve a type 4 (pseudo randomly generated) UUID.
*
* The {@code UUID} is generated using a cryptographically strong pseudo
* random number generator.
*
* @return A randomly generated {@code UUID}
*/
public static UUID randomUUID() {
В идеале хотелось бы понять как строчки были вычислены и если это обратимое преобразование, то провернуть фарш назад)
По стандарту четвертый тип UUID-4 формируется из случайного числа. Тоесть скорее всего ты ошибаешся насчет хеша. Это все таки не хеш хотя для других типов UUID функции хешей могут быть косвенно использованы.