Нет. Ключи GUID могут быть предсказаны, по крайней мере, сгенерированные .NET / WinAPI. Также имейте в виду, что GUID даже не имеет истинной 128-битной случайности, потому что номер версии фиксирован. Это дает вам очень слабый ключ.
Что еще хуже, несколько версий алгоритма GUID страдают от предсказуемости. Дело в том, что GUID не создаются случайным образом, но они следуют определенным правилам, что делает невозможным коллизию GUID.
Как обсуждалось в комментариях, GUID V1 страдал проблемами конфиденциальности (или, наоборот, более слабыми ключами), поскольку MAC-адрес использовался для их генерации. С GUID V4 все еще есть способы предсказать последовательность в соответствии с (русским) источником ниже.
К счастью, в .NET есть криптографически сильные случайные генераторы на борту. RNGCryptoServiceProvider
ваш друг:
RNGCryptoServiceProvider _cryptoProvider = new RNGCryptoServiceProvider();
int fileLength = 8 * 1024;
var randomBytes = new byte[fileLength];
_cryptoProvider.GetBytes(randomBytes);
Возможно, вы захотите сослаться на:
Как сгенерировать криптографически защищенное псевдослучайное число в C #? - показывает альтернативы и в комментарии дается ссылка на Википедию:
http://en.wikipedia.org/wiki/Globally_Unique_Identifier
Там утверждается (согласно википедии, страница на русском языке), что можно предсказать сгенерированные предыдущие и будущие числа:
http://www.gotdotnet.ru/blogs/denish/1965/