Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
Azure Synapse Analytics
Система платформы аналитики (PDW)
Конечная точка SQL аналитики в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в Microsoft Fabric
Возвращает хэш MD2, MD4, MD5, SHA, SHA1 или SHA2 входных данных в SQL Server.
Соглашения о синтаксисе Transact-SQL
Синтаксис
HASHBYTES ( '<algorithm>', { @input | 'input' } )
<algorithm>::= MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512
Аргументы
<algorithm>
Указывает используемый алгоритм хэширования. Этот аргумент обязателен и не имеет значения по умолчанию. Указание одинарных кавычек (") также обязательно. Начиная с SQL Server 2016 (13.x), все алгоритмы, отличные от SHA2_256, и SHA2_512 устарели.
@input
Указывает переменную, содержащую хэшируемые данные.
@input имеет тип varchar, nvarchar или varbinary.
input
Определяет выражение, анализирующее тип хэшируемых данных (символьная или двоичная строка).
Выходные данные соответствуют стандарту алгоритма: 128 бит (16 байт) для MD2, MD4 и MD5; 160 бит (20 байт) для SHA и SHA1; 256 бит (32 байта) для SHA2_256 и 512 бит (64 байта) для SHA2_512.
Область применения: SQL Server 2012 (11.x) и более поздних версий
Для SQL Server 2014 (12.x) и более ранних версий допустимые входные значения ограничены 8000 байтами.
Возвращаемое значение
varbinary (не более 8000 байт)
Замечания
Попробуйте использовать CHECKSUM или BINARY_CHECKSUM в качестве альтернативы для вычисления хэш-значения.
Алгоритмы MD2, MD4, MD5, SHA и SHA1 устарели начиная с SQL Server 2016 (13.x). Вместо этого используйте алгоритмы SHA2_256 или SHA2_512. Старые алгоритмы по-прежнему будут работать, но будут вызывать событие нерекомендуемого алгоритма.
Примеры
Возвращение хэша данных в переменной
В приведенном ниже примере возвращается хэш SHA2_256 данных типа nvarchar, хранящихся в переменной @HashThis.
DECLARE @HashThis NVARCHAR(32);
SET @HashThis = CONVERT(NVARCHAR(32),'dslfdkjLK85kldhnv$n000#knf');
SELECT HASHBYTES('SHA2_256', @HashThis);
Возвращает хэш данных в столбце таблицы
Следующий пример возвращает хэш SHA2_256 для значений в столбце c1 таблицы 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;
Вот результирующий набор.
-------------------------------------------
0x741238C01D9DB821CF171BF61D72260B998F7C7881D90091099945E0B9E0C2E3
0x91DDCC41B761ACA928C62F7B0DA61DC763255E8247E0BD8DCE6B22205197154D
(2 row(s) affected)
См. также
Выбор алгоритма шифрованияCHECKSUM_AGG (Transact-SQL)CHECKSUM (Transact-SQL)BINARY_CHECKSUM(Transact-SQL)