共用方式為


HASHBYTES (Transact-SQL)

傳回其在 SQL Server 中輸入的 MD2、MD4、MD5、SHA、SHA1 或 SHA2 雜湊。

適用於:SQL Server (SQL Server 2008 至目前版本)。

主題連結圖示 Transact-SQL 語法慣例

語法

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

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

引數

  • '<algorithm>'
    識別用來雜湊輸入的雜湊演算法。 這是必要的引數,沒有預設值。 必須加上單引號。

  • @input
    指定含有要雜湊之資料的變數。 @input 是 varchar、nvarchar 或 varbinary。

  • ' input '
    指定運算式,這個運算式評估為要雜湊的字元或二進位字串。

    允許的輸入值限制為 8000 個位元組。 輸出符合演算法標準:用於 MD2、MD4 和 MD5 的 128 位元 (16 個位元組);用於 SHA 和 SHA1 的 160 位元 (20 個位元組);用於 SHA2_256 的 256 位元 (32 位元組),以及用於 SHA2_512 的 512 位元 (64 位元組)。

    適用於 SHA2_256 的 256 位元 (32 個位元組) 以及適用於 SHA2_512 的 512 位元 (64 個位元組),適用於 SQL Server 2012 至 SQL Server 2014。

傳回值

varbinary (最多 8000 位元組)

範例

傳回變數的雜湊

下列範例會傳回儲存在 @HashThis 變數中之 nvarchar 資料的 SHA1 雜湊。

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

傳回資料表資料行的雜湊

下列範例會傳回 Test1 資料表 c1 資料行中之值的 SHA1 雜湊。

CREATE TABLE dbo.Test1 (c1 nvarchar(50));
GO
INSERT dbo.Test1 VALUES ('This is a test.'), ('This is test 2.');
GO
SELECT HASHBYTES('SHA1', c1) FROM dbo.Test1;

以下為結果集:

-------------------------------------------
0x0E7AAB0B4FF0FD2DFB4F0233E2EE7A26CD08F173
0xF643A82F948DEFB922B12E50B950CEE130A934D6

(2 row(s) affected)

請參閱

概念

選擇加密演算法