Sample code for 30+ languages & platforms
SQL Server

Example: Crypt2.GenRandomBytesENC method

Shows how to use the GenRandomBytesENC method to generate a specified number of random bytes and return them as a binary encoded string, such as in base64 or hex format.

Chilkat SQL Server Downloads

SQL Server
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @crypt int
    EXEC @hr = sp_OACreate 'Chilkat.Crypt2', @crypt OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    -- Example of a some of the binary encodings supported by Chilkat.

    -- Internally uses the Fortuna cryptographically secure random number generation algorithm
    -- auto-seeded from a secure source of entropy that depends on the OS.

    EXEC sp_OASetProperty @crypt, 'EncodingMode', 'hex'
    DECLARE @s nvarchar(4000)
    EXEC sp_OAMethod @crypt, 'GenRandomBytesENC', @s OUT, 8

    PRINT 'Uppercase Hex: ' + @s

    EXEC sp_OASetProperty @crypt, 'EncodingMode', 'hex_lower'
    EXEC sp_OAMethod @crypt, 'GenRandomBytesENC', @s OUT, 8

    PRINT 'Lowercase Hex: ' + @s

    EXEC sp_OASetProperty @crypt, 'EncodingMode', 'base64'
    EXEC sp_OAMethod @crypt, 'GenRandomBytesENC', @s OUT, 8

    PRINT 'Base64: ' + @s

    EXEC sp_OASetProperty @crypt, 'EncodingMode', 'base64url'
    EXEC sp_OAMethod @crypt, 'GenRandomBytesENC', @s OUT, 8

    PRINT 'Base64Url: ' + @s

    EXEC sp_OASetProperty @crypt, 'EncodingMode', 'base58'
    EXEC sp_OAMethod @crypt, 'GenRandomBytesENC', @s OUT, 8

    PRINT 'Base58: ' + @s

    EXEC sp_OASetProperty @crypt, 'EncodingMode', 'base32'
    EXEC sp_OAMethod @crypt, 'GenRandomBytesENC', @s OUT, 8

    PRINT 'Base32: ' + @s

    EXEC sp_OASetProperty @crypt, 'EncodingMode', 'decList'
    EXEC sp_OAMethod @crypt, 'GenRandomBytesENC', @s OUT, 8

    PRINT 'Decimal List: ' + @s

    -- Sample Output:

    -- Uppercase Hex: 1BA0E87915C3B429
    -- Lowercase Hex: 1e1638a1c7996c58
    -- Base64: 1lV0I/su5lg=
    -- Base64Url: Zq7DU0nukLk
    -- Base58: foUVWUjAT6e
    -- Base32: LHV5RV4HRCLW2===
    -- Decimal List: 168,55,214,82,93,154,191,164

    EXEC @hr = sp_OADestroy @crypt


END
GO