Ответ таков: вам не нужно это знать. Как указано в принятом ответе на связанный вопрос :
GUID не дает гарантий относительно случайности, он дает гарантии вокруг уникальности.
Еще более сильное утверждение о безопасности и случайности сделано в RFC4122 , в котором указан формат UUID:
Не думайте, что UUID трудно угадать; они не должны использоваться
в качестве возможностей безопасности (идентификаторы, чье простое владение дает
доступ), например. Предсказуемый источник случайных чисел
усугубить ситуацию.
Все остальное является деталью реализации (и может быть предметом изменения).
Особенности Windows
Часто люди утверждают, что поведение в Windows задокументировано, и поэтому гарантируется, что GUID являются криптографически безопасными.
Архив в настоящее время [MS-SECO] Обзор безопасности Windows Документ упоминается в Приложении A:
Хотя только небольшое меньшинство GUID версии 4 требует
криптографическая случайность, получены случайные биты для всех GUID версии 4, встроенных в Windows
через криптографический API Windows CryptGenRandom или аналогичный, тот же источник, который используется
для генерации криптографических ключей.
Кроме того, в разделе 2.5.5 того же документа явно упоминается использование значений «секретного GUID» в качестве одноразового номера или аутентификатора.
НО: эта часть документации о поведении продукта не является спецификацией, на которой вы обычно основываете безопасность своего продукта (в частности, в контексте .NET).
На самом деле, вышеупомянутый документ описывает подробности реализации конкретного продукта .
Даже если текущие реализации Windows и .NET Framework 4.x выдают действительно случайные значения UUID версии 4 в Windows, нет гарантии, что System.Guid.NewGuid
сделает это в будущем или на других платформах .NET (например, Mono, Silverlight, CF). .NET Core и т. Д.).
Как пример, алгоритм UUID, используемый в более ранних версиях .NET Core , зависит от платформы , и вы можете получить UUID версии 1 (для BSD).