Zamierzam użyć UNIQUEIDENTIFIER
jako klucza dostępu, którego użytkownicy mogą używać do uzyskiwania dostępu do niektórych danych. W tym sensie klucz będzie działał jako hasło.
Muszę wygenerować wiele takich identyfikatorów jako część INSERT...SELECT
instrukcji. Ze względów architektonicznych chcę w tym przypadku wygenerować identyfikatory po stronie serwera.
Jak mogę wygenerować bezpiecznie losowy UNIQUEIDENTIFIER
? Pamiętaj, że NEWID
nie byłoby to wystarczająco losowe, ponieważ w ogóle nie obiecuje żadnych właściwości bezpieczeństwa. Szukam SQL Server odpowiednika System.Security.Cryptography.RandomNumberGenerator, ponieważ potrzebuję niemożliwych do odczytania identyfikatorów. Wszystko opiera się na CHECKSUM
, RAND
lub GETUTCDATE
nie byłoby również zakwalifikować.
4
. Ale fakt, że nie mam mocnych dowodów na to, że można je zgadywać, nie oznacza, że nie są. Nie mogę oprzeć tej decyzji bezpieczeństwa na tej obserwacji.