HASHBYTES (Transact-SQL)HASHBYTES (Transact-SQL)

適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

SQL ServerSQL Server で入力の MD2、MD4、MD5、SHA、SHA1、または SHA2 ハッシュを返します。Returns the MD2, MD4, MD5, SHA, SHA1, or SHA2 hash of its input in SQL ServerSQL Server.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

HASHBYTES ( '<algorithm>', { @input | 'input' } )  
  
<algorithm>::= MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512   

注意

SQL Server 2014 以前の Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

引数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. SQL Server 2016 (13.x)SQL Server 2016 (13.x) 以降、SHA2_256 と SHA2_512 以外のすべてのアルゴリズムは非推奨とされました。Beginning with SQL Server 2016 (13.x)SQL Server 2016 (13.x), all algorithms other than SHA2_256, and SHA2_512 are deprecated.

@input
ハッシュされるデータを含む変数を指定します。Specifies a variable containing the data to be hashed. @input は、varcharnvarchar、または varbinary です。@input is varchar, nvarchar, or varbinary.

'input''input'
ハッシュする文字またはバイナリ文字列に評価される式を指定します。Specifies an expression that evaluates to a character or binary string to be hashed.

出力はアルゴリズムの標準に準拠します。MD2、MD4、および MD5 の場合は 128 ビット (16 バイト)、SHA および SHA1 の場合は 160 ビット (20 バイト)、SHA2_256 の場合は 256 ビット (32 バイト)、SHA2_512 の場合は 512 ビット (64 バイト) です。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.

適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) 以降Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later

SQL Server 2014 (12.x)SQL Server 2014 (12.x) 以前の場合、指定できる入力値は 8000 バイトまでに制限されます。For SQL Server 2014 (12.x)SQL Server 2014 (12.x) and earlier, allowed input values are limited to 8000 bytes.

戻り値Return Value

varbinary (最大 8,000 バイト)varbinary (maximum 8000 bytes)

注釈Remarks

ハッシュ値を計算するための別の方法として、CHECKSUM または BINARY_CHECKSUM の使用を検討してください。Consider using CHECKSUM or BINARY_CHECKSUM as alternatives to compute a hash value.

SQL Server 2016 (13.x)SQL Server 2016 (13.x) 以降では、MD2、MD4、MD5、SHA、SHA1 のアルゴリズムは非推奨です。The MD2, MD4, MD5, SHA, and SHA1 algorithms are deprecated starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x). 代わりに SHA2_256 または SHA2_512 を使用してください。Use SHA2_256 or SHA2_512 instead. 以前のアルゴリズムは引き続き機能しますが、Deprecation イベントが発生します。Older algorithms will continue working, but they will raise a deprecation event.

Examples

変数のハッシュを返すReturn the hash of a variable

次の例では、変数 @HashThis に格納されている nvarchar 型のデータの SHA2_256 ハッシュを返します。The following example returns the SHA2_256 hash of the nvarchar data stored in variable @HashThis.

DECLARE @HashThis NVARCHAR(32);  
SET @HashThis = CONVERT(NVARCHAR(32),'dslfdkjLK85kldhnv$n000#knf');  
SELECT HASHBYTES('SHA2_256', @HashThis);  

テーブル列のハッシュを返すReturn the hash of a table column

次の例では、テーブル Test1 内の列 c1 の値の SHA2_256 ハッシュを返します。The following example returns the SHA2_256 hash of the values in column c1 in the table Test1.

CREATE TABLE dbo.Test1 (c1 NVARCHAR(32));  
INSERT dbo.Test1 VALUES ('This is a test.');  
INSERT dbo.Test1 VALUES ('This is test 2.');  
SELECT HASHBYTES('SHA2_256', c1) FROM dbo.Test1;  

結果セットは次のようになります。Here is the result set.

-------------------------------------------  
0x741238C01D9DB821CF171BF61D72260B998F7C7881D90091099945E0B9E0C2E3 
0x91DDCC41B761ACA928C62F7B0DA61DC763255E8247E0BD8DCE6B22205197154D  
(2 row(s) affected)  

参照See Also

暗号化アルゴリズムの選択 CHECKSUM_AGG (Transact-SQL) CHECKSUM (Transact-SQL) BINARY_CHECKSUM (Transact-SQL)Choose an Encryption Algorithm CHECKSUM_AGG (Transact-SQL) CHECKSUM (Transact-SQL) BINARY_CHECKSUM (Transact-SQL)