Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Use CRYPT_GEN_RANDOM() para criar um número aleatório criptográfico no SQL Server


No SQL Server, você pode usar o CRYPT_GEN_RANDOM() função para retornar um número criptográfico gerado aleatoriamente. O número é gerado pela Cryptographic Application Programming Interface (CAPI).

CAPI é uma interface de programação de aplicativos específica da plataforma Microsoft Windows incluída nos sistemas operacionais Microsoft Windows que fornece serviços para permitir que os desenvolvedores protejam aplicativos baseados no Windows usando criptografia.

O CRYPT_GEN_RANDOM() A função aceita dois argumentos:o comprimento (obrigatório) e uma semente (opcional).

O valor de retorno é varbinary(8000) .


Sintaxe


A sintaxe fica assim:
CRYPT_GEN_RANDOM ( comprimento [ , semente ] )

Onde comprimento é o comprimento, em bytes, do número a ser criado e seed é um número hexadecimal opcional, para uso como um valor de semente aleatório.

O comprimento argumento deve estar entre 1 e 8000.

O comprimento da semente deve corresponder ao valor do comprimento argumento.

Exemplo 1 – Uso básico


Aqui está um exemplo que cria um número aleatório com um comprimento de 4 bytes.
SELECT CRYPT_GEN_RANDOM(4) AS Resultado;

Resultado:
+------------+| Resultado ||------------|| 0x7D6B535F |+------------+

Aqui está um com um comprimento de 20 bytes.
SELECT CRYPT_GEN_RANDOM(20) AS Resultado;

Resultado:
+--------------------------------------------+| Resultado ||--------------------------------------------|| 0xA56B1ADE554F48DAE55F26605AEA2E229D529BA2 |+--------------------------------------------------------+ 

Exemplo 2 – Use uma Semente


Neste exemplo eu adiciono uma semente.
SELECT CRYPT_GEN_RANDOM(4, 0x13F18C70) AS Resultado;

Resultado:
+------------+| Resultado ||------------|| 0xF36CB19D |+----------------+