Я намерен использовать UNIQUEIDENTIFIERв качестве ключа доступа, который пользователи могут использовать для доступа к определенным данным. Ключ будет действовать как пароль в этом смысле.
Мне нужно сгенерировать несколько таких идентификаторов как часть INSERT...SELECTзаявления. По архитектурным соображениям я хочу генерировать идентификаторы на стороне сервера в этом случае.
Как я могу создать надежно случайный UNIQUEIDENTIFIER? Обратите внимание, что NEWIDэто не было бы достаточно случайным, поскольку это не обещает никаких свойств безопасности вообще. Я ищу SQL Server эквивалент System.Security.Cryptography.RandomNumberGenerator, потому что мне нужны неосуществимые идентификаторы. Все, что основано CHECKSUM, RANDили не GETUTCDATEбудет соответствовать требованиям.
4. Но тот факт, что у меня нет убедительных доказательств того, что они могут быть угаданными, не означает, что это не так. Я не могу основать это решение по безопасности на этом наблюдении.