VERIFYSIGNEDBYASYMKEY (Transact-SQL)
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體
測試數位簽署的資料在簽署之後是否已經變更。
語法
VerifySignedByAsymKey( Asym_Key_ID , clear_text , signature )
引數
Asym_Key_ID
這是資料庫中的非對稱金鑰憑證識別碼。
clear_text
這是正在驗證的純文字資料。
簽章
這是附加在已簽署資料中的簽章。 signature 為 varbinary。
傳回型別
int
簽章符合時傳回 1,否則傳回 0。
備註
VerifySignedByAsymKey 會使用指定之非對稱金鑰的公開金鑰解密資料的簽章,並比較解密值與新計算的資料 MD5 雜湊。 如果值相符,簽章將確認為有效。
權限
需要非對稱金鑰的 VIEW DEFINITION 權限。
範例
A. 測試含有效簽章的資料
如果所選的資料在以非對稱金鑰 WillisKey74
簽署之後尚未變更,則下列範例會傳回 1。 如果資料已被竄改,則下列範例會傳回 0。
SELECT Data,
VerifySignedByAsymKey( AsymKey_Id( 'WillisKey74' ), SignedData,
DataSignature ) as IsSignatureValid
FROM [AdventureWorks2022].[SignedData04]
WHERE Description = N'data encrypted by asymmetric key ''WillisKey74''';
GO
RETURN;
B. 傳回包含含有效簽章之資料的結果集
下列範例會傳回 SignedData04
中的資料列,它們包含自從以非對稱金鑰 WillisKey74
簽署之後尚未變更的資料。 這個範例會呼叫函數 AsymKey_ID
,從資料庫取得非對稱金鑰的識別碼。
SELECT Data
FROM [AdventureWorks2022].[SignedData04]
WHERE VerifySignedByAsymKey( AsymKey_Id( 'WillisKey74' ), Data,
DataSignature ) = 1
AND Description = N'data encrypted by asymmetric key ''WillisKey74''';
GO
另請參閱
ASYMKEY_ID (Transact-SQL)
SIGNBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)
加密階層