sql >> Database >  >> RDS >> Sqlserver

Gebruik CRYPT_GEN_RANDOM() om een ​​cryptografisch, willekeurig getal in SQL Server te maken

In SQL Server kunt u de CRYPT_GEN_RANDOM() functie om een ​​cryptografisch, willekeurig gegenereerd getal terug te geven. Het nummer wordt gegenereerd door de Cryptographic Application Programming Interface (CAPI).

CAPI is een Microsoft Windows-platformspecifieke applicatieprogrammeerinterface die wordt meegeleverd met Microsoft Windows-besturingssystemen en die services biedt waarmee ontwikkelaars op Windows gebaseerde applicaties kunnen beveiligen met behulp van cryptografie.

De CRYPT_GEN_RANDOM() functie accepteert twee argumenten:de lengte (vereist) en een seed (optioneel).

De geretourneerde waarde is varbinary(8000) .

Syntaxis

De syntaxis gaat als volgt:

CRYPT_GEN_RANDOM ( length [ , seed ] )

Waar lengte is de lengte, in bytes, van het aan te maken nummer, en seed is een optioneel hexadecimaal getal, voor gebruik als een willekeurige beginwaarde.

De lengte argument moet tussen 1 en 8000 liggen.

De lengte van zaad moet overeenkomen met de waarde van de lengte argument.

Voorbeeld 1 – Basisgebruik

Hier is een voorbeeld dat een willekeurig getal maakt met een lengte van 4 bytes.

SELECT CRYPT_GEN_RANDOM(4) AS Result;

Resultaat:

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

Hier is er een met een lengte van 20 bytes.

SELECT CRYPT_GEN_RANDOM(20) AS Result;

Resultaat:

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

Voorbeeld 2 – Gebruik een zaadje

In dit voorbeeld voeg ik een seed toe.

SELECT CRYPT_GEN_RANDOM(4, 0x13F18C70) AS Result;

Resultaat:

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

  1. Hoe SID verschilt van de servicenaam in Oracle tnsnames.ora

  2. Hoe Distributed AD te gebruiken om de patchtijd in Oracle EBS te verkorten

  3. Waarom mijn pessimistische Locking in JPA met Oracle niet werkt

  4. Vind alle zoekopdrachten die een bepaalde tabel gebruiken