SQL Server
SQL Server
Hash (Digest) a String
Hash the bytes of a 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
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