VERIFYSIGNEDBYASYMKEY (Transact-SQL)
Testa se dados assinados digitalmente foram alterados desde que foram assinados.
Aplica-se a: SQL Server (SQL Server 2008 à versão atual). |
Convenções da sintaxe Transact-SQL
Sintaxe
VerifySignedByAsymKey( Asym_Key_ID , clear_text , signature )
Argumentos
Asym_Key_ID
É a ID de um certificado de chave assimétrica no banco de dados.clear_text
São dados de texto não criptografado que estão sendo verificados.signature
É a assinatura que foi anexada aos dados assinados. signature é varbinary.
Tipos de retorno
int
Retorna 1 quando as assinaturas forem correspondentes; caso contrário, retorna 0.
Comentários
VerifySignedByAsymKey descriptografa a assinatura dos dados usando a chave pública da chave assimétrica especificada e compara o valor descriptografado a um hash de MD5 dos dados computados recentemente. Se os valores corresponderem, a assinatura será confirmada como válida.
Permissões
Requer a permissão VIEW DEFINITION na chave assimétrica.
Exemplos
A.Testando se os dados têm uma assinatura válida
O exemplo a seguir retornará 1 se os dados selecionados não foram alterados desde a assinatura com a chave assimétrica WillisKey74. O exemplo retornará 0 se os dados foram violados.
SELECT Data,
VerifySignedByAsymKey( AsymKey_Id( 'WillisKey74' ), SignedData,
DataSignature ) as IsSignatureValid
FROM [AdventureWorks2012].[SignedData04]
WHERE Description = N'data encrypted by asymmetric key ''WillisKey74''';
GO
RETURN;
B.Retornando um conjunto de resultados contendo dados com uma assinatura válida
O exemplo a seguir retorna linhas em SignedData04 contendo dados que não foram alterados desde a assinatura com a chave assimétrica WillisKey74. O exemplo chama a função AsymKey_ID para obter a ID de chave assimétrica do banco de dados.
SELECT Data
FROM [AdventureWorks2012].[SignedData04]
WHERE VerifySignedByAsymKey( AsymKey_Id( 'WillisKey74' ), Data,
DataSignature ) = 1
AND Description = N'data encrypted by asymmetric key ''WillisKey74''';
GO
Consulte também
Referência
CREATE ASYMMETRIC KEY (Transact-SQL)
ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)