sql >> Base de Datos >  >> RDS >> Sqlserver

Use CRYPT_GEN_RANDOM() para crear un número aleatorio criptográfico en SQL Server

En SQL Server, puede usar CRYPT_GEN_RANDOM() para devolver un número criptográfico generado aleatoriamente. El número es generado por la Interfaz de programación de aplicaciones criptográficas (CAPI).

CAPI es una interfaz de programación de aplicaciones específica de la plataforma Microsoft Windows incluida con los sistemas operativos Microsoft Windows que brinda servicios para permitir a los desarrolladores proteger las aplicaciones basadas en Windows mediante criptografía.

El CRYPT_GEN_RANDOM() La función acepta dos argumentos:la longitud (obligatorio) y una semilla (opcional).

El valor de retorno es varbinary(8000) .

Sintaxis

La sintaxis es así:

CRYPT_GEN_RANDOM ( length [ , seed ] )

donde longitud es la longitud, en bytes, del número que se va a crear, y seed es un número hexadecimal opcional, para usar como valor inicial aleatorio.

La longitud el argumento debe estar entre 1 y 8000.

La longitud de la semilla debe coincidir con el valor de la longitud argumento.

Ejemplo 1:uso básico

Aquí hay un ejemplo que crea un número aleatorio con una longitud de 4 bytes.

SELECT CRYPT_GEN_RANDOM(4) AS Result;

Resultado:

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

Aquí hay uno con una longitud de 20 bytes.

SELECT CRYPT_GEN_RANDOM(20) AS Result;

Resultado:

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

Ejemplo 2:usar una semilla

En este ejemplo agrego una semilla.

SELECT CRYPT_GEN_RANDOM(4, 0x13F18C70) AS Result;

Resultado:

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