HASHBYTES (Transact-SQL)HASHBYTES (Transact-SQL)
適用対象:Applies to: SQL ServerSQL Server (サポートされているすべてのバージョン)
SQL ServerSQL Server (all supported versions)
Azure SQL データベースAzure SQL Database
Azure SQL データベースAzure SQL Database
Azure SQL Managed InstanceAzure SQL Managed Instance
Azure SQL Managed InstanceAzure SQL Managed Instance
Azure Synapse AnalyticsAzure Synapse Analytics
Azure Synapse AnalyticsAzure Synapse Analytics
Parallel Data WarehouseParallel Data Warehouse
Parallel Data WarehouseParallel Data Warehouse
SQL ServerSQL Server (サポートされているすべてのバージョン)
SQL ServerSQL Server (all supported versions)
Azure SQL データベースAzure SQL Database
Azure SQL データベースAzure SQL Database
Azure SQL Managed InstanceAzure SQL Managed Instance
Azure SQL Managed InstanceAzure SQL Managed Instance
Azure Synapse AnalyticsAzure Synapse Analytics
Azure Synapse AnalyticsAzure Synapse Analytics
Parallel Data WarehouseParallel Data Warehouse
Parallel 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 構文表記規則
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
は、varchar、nvarchar、または 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)