次の方法で共有


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 (最大 8,000 バイト)

使用例

変数のハッシュを返す

次の例では、変数 @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)

関連項目

概念

暗号化アルゴリズムの選択