Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Utilizzare CRYPT_GEN_RANDOM() per creare un numero casuale crittografico in SQL Server

In SQL Server puoi utilizzare CRYPT_GEN_RANDOM() funzione per restituire un numero crittografico, generato casualmente. Il numero è generato dall'interfaccia di programmazione delle applicazioni crittografiche (CAPI).

CAPI è un'interfaccia di programmazione dell'applicazione specifica per la piattaforma Microsoft Windows inclusa nei sistemi operativi Microsoft Windows che fornisce servizi per consentire agli sviluppatori di proteggere le applicazioni basate su Windows utilizzando la crittografia.

Il CRYPT_GEN_RANDOM() La funzione accetta due argomenti:la lunghezza (obbligatoria) e un seme (facoltativo).

Il valore restituito è varbinary(8000) .

Sintassi

La sintassi è questa:

CRYPT_GEN_RANDOM ( length [ , seed ] )

Dove lunghezza è la lunghezza, in byte, del numero da creare e seme è un numero esadecimale opzionale, da utilizzare come valore seme casuale.

La lunghezza l'argomento deve essere compreso tra 1 e 8000.

La lunghezza del seme deve corrispondere al valore della lunghezza discussione.

Esempio 1 – Utilizzo di base

Ecco un esempio che crea un numero casuale con una lunghezza di 4 byte.

SELECT CRYPT_GEN_RANDOM(4) AS Result;

Risultato:

+------------+
| Result     |
|------------|
| 0x7D6B535F |
+------------+

Eccone uno con una lunghezza di 20 byte.

SELECT CRYPT_GEN_RANDOM(20) AS Result;

Risultato:

+--------------------------------------------+
| Result                                     |
|--------------------------------------------|
| 0xA56B1ADE554F48DAE55F26605AEA2E229D529BA2 |
+--------------------------------------------+

Esempio 2:utilizzare un seme

In questo esempio aggiungo un seme.

SELECT CRYPT_GEN_RANDOM(4, 0x13F18C70) AS Result;

Risultato:

+------------+
| Result     |
|------------|
| 0xF36CB19D |
+------------+