HASHBYTES (Transact-SQL)

Returns the MD2, MD4, MD5, SHA, SHA1, or SHA2 hash of its input.

Topic link icon Transact-SQL Syntax Conventions

Syntax

HASHBYTES ( '<algorithm>', { @input | 'input' } ) 

<algorithm>::= MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512 

Arguments

  • '<algorithm>'
    Identifies the hashing algorithm to be used to hash the input. This is a required argument with no default. The single quotation marks are required.

  • @input
    Specifies a variable containing the data to be hashed. @input is varchar, nvarchar, or varbinary.

  • ' input '
    Specifies a string to be hashed.

Return Value

varbinary (maximum 8000 bytes)

Remarks

Allowed input values are limited to 8000 bytes. The output conforms to the algorithm standard: 128 bits (16 bytes) for MD2, MD4, and MD5; 160 bits (20 bytes) for SHA and SHA1; 256 bits (32 bytes) for SHA2_256, and 512 bits (64 bytes) for SHA2_512.

Examples

The following example returns the SHA1 hash of the nvarchar data stored in variable @HashThis.

DECLARE @HashThis nvarchar(4000);
SELECT @HashThis = CONVERT(nvarchar(4000),'dslfdkjLK85kldhnv$n000#knf');
SELECT HASHBYTES('SHA1', @HashThis);
GO

See Also

Concepts

Choose an Encryption Algorithm