SQL Server
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
-- 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