SQL Server
SQL Server
Encrypting or Hashing Hex or Base64 Encoded Binary Data
This example demonstrates how to encrypt binary input data that is in an encoded string form, such as "hex" or "base64". The goal is to do the following:- Decode the input to get the binary data to be hashed or encrypted.
- Hash or encrypt.
- Encode the result and return as a hex or base64 encoded string.
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
-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
DECLARE @crypt int
EXEC @hr = sp_OACreate 'Chilkat.Crypt2', @crypt OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
DECLARE @sHexBinary nvarchar(4000)
SELECT @sHexBinary = '9D4203A3FF07791A1CD7FB0075D179E14E8B9DBEBFDE24F6D04613B8397B328E'
-- The input is hex-encoded binary data, so set the Charset property = "hex"
-- The Charset can also be "base64".
EXEC sp_OASetProperty @crypt, 'Charset', 'hex'
-- The output will be encoded to hex also.
EXEC sp_OASetProperty @crypt, 'EncodingMode', 'hex'
EXEC sp_OASetProperty @crypt, 'HashAlgorithm', 'ripemd160'
DECLARE @hash nvarchar(4000)
EXEC sp_OAMethod @crypt, 'HashStringENC', @hash OUT, @sHexBinary
PRINT 'RIPEMD160: ' + @hash
-- Important: This example requires Chilkat v9.5.0.49 or greater to work correctly.
-- The same can be accomplished w/ encryption:
EXEC sp_OASetProperty @crypt, 'CryptAlgorithm', 'aes'
EXEC sp_OASetProperty @crypt, 'CipherMode', 'cbc'
EXEC sp_OASetProperty @crypt, 'KeyLength', 256
EXEC sp_OASetProperty @crypt, 'PaddingScheme', 0
EXEC sp_OASetProperty @crypt, 'Charset', 'hex'
EXEC sp_OASetProperty @crypt, 'EncodingMode', 'hex'
DECLARE @ivHex nvarchar(4000)
SELECT @ivHex = '000102030405060708090A0B0C0D0E0F'
EXEC sp_OAMethod @crypt, 'SetEncodedIV', NULL, @ivHex, 'hex'
DECLARE @keyHex nvarchar(4000)
SELECT @keyHex = '000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F'
EXEC sp_OAMethod @crypt, 'SetEncodedKey', NULL, @keyHex, 'hex'
DECLARE @encStr nvarchar(4000)
EXEC sp_OAMethod @crypt, 'EncryptStringENC', @encStr OUT, @sHexBinary
PRINT @encStr
-- Important: This example requires Chilkat v9.5.0.49 or greater to work correctly.
DECLARE @decStr nvarchar(4000)
EXEC sp_OAMethod @crypt, 'DecryptStringENC', @decStr OUT, @encStr
PRINT @decStr
EXEC @hr = sp_OADestroy @crypt
END
GO