У меня есть объекты со следующими свойствами:Хеширующий алгоритм для создания уникальных идентификаторов?
class MyObject
{
int sourceId();
String id();
}
Если я использую id
в качестве идентификатора, не может быть коллизии, поскольку могут быть записи с одинаковыми id
, но разные sourceId
Поэтому я ищу в создание хеша sourceId
и id
и использование этого для генерации уникальных идентификаторов для каждой записи. Я думал только о md5ing String.valueOf(sourceId + id)
, но кажется, что столкновения md5 не так уж необычны, как хотелось бы.
Какой другой алгоритм был бы рекомендован для этого, что-то, что создает быстрый хеш, и где также было бы невероятно, чтобы произошло столкновение?
UUID бы помочь в этом случае? Вероятность столкновения была бы очень маленькой, но вам также пришлось бы принять длину исправления для id, так как UUID не может быть сокращен. – hamena314
SHA1, SHA256, SHA512, многие из них – thinker
@ hamena314 Он не может использовать UUID, поскольку мне также нужна возможность обратного генерации идентификатора из 'sourceId' и' id' –