Я играю с идеей использования Guid в качестве PrimaryKey в базе данных без SQL, которая представляет собой комбинацию трех различных свойств (вероятно, это плохая идея). Эти три свойства: два целых числа и DateTime - они уникальны в сочетании. Причина, по которой я использую Guid, заключается в том, что уже существующие данные той же структуры используют Guid вместо этих свойств для поиска данных.
Если я конвертирую их в строки и объединяю их. Затем я конвертирую в byte [] и создаю Guid. Каковы шансы столкновения? Полагаю, проблема здесь в хешировании? Если я использую слабый 16-байтовый алгоритм хеширования, такой как MD5, какова вероятность совпадения двух руководств (коллизия), если свойства различны; например, целые числа и дата и время? Что произойдет, если я использую алгоритм хеширования, такой как SHA256, и просто использовал первые 16 байтов вместо MD5? Остались ли шансы на коллизию такими же? *