Sample code for 30+ languages & platforms
SQL Server

Hash (Digest) a String

Hash the bytes of a string.

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 @sb int
    EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sb OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    DECLARE @success int
    EXEC sp_OAMethod @sb, 'Append', @success OUT, 'Hello World'

    -- Hashing algorithms (i.e. digest algorithms) operate on raw bytes.
    -- Therefore, we must specify the character encoding (utf-8, utf-16, iso-8859-1, etc.) to be used when hashing.

    -- Get the SHA256 hash in hex
    DECLARE @sha256_hex nvarchar(4000)
    EXEC sp_OAMethod @sb, 'GetHash', @sha256_hex OUT, 'sha256', 'hex', 'utf-8'

    PRINT 'SHA256: ' + @sha256_hex

    -- Get the SHA384 hash in hex lowercase
    DECLARE @sha384_hex nvarchar(4000)
    EXEC sp_OAMethod @sb, 'GetHash', @sha384_hex OUT, 'sha384', 'hex_lower', 'utf-8'

    PRINT 'SHA384: ' + @sha384_hex

    -- Get the SHA512 hash in base64
    DECLARE @sha512_base64 nvarchar(4000)
    EXEC sp_OAMethod @sb, 'GetHash', @sha512_base64 OUT, 'sha512', 'base64', 'utf-8'

    PRINT 'SHA512: ' + @sha512_base64

    -- Get the SHA1 hash in hex lowercase
    DECLARE @sha1_hex nvarchar(4000)
    EXEC sp_OAMethod @sb, 'GetHash', @sha1_hex OUT, 'sha1', 'hex_lower', 'utf-8'

    PRINT 'SHA1: ' + @sha1_hex

    -- Get the CRC8 digest in decimal
    DECLARE @crc8_decimal nvarchar(4000)
    EXEC sp_OAMethod @sb, 'GetHash', @crc8_decimal OUT, 'crc8', 'decimal', 'utf-8'

    PRINT 'CRC8: ' + @crc8_decimal

    EXEC @hr = sp_OADestroy @sb


END
GO