共用方式為


VerifySignedByAsmKey (Transact-SQL)

測試數位簽署的資料是否已經在簽署之後變更。

主題連結圖示Transact-SQL 語法慣例

語法

VerifySignedByAsymKey( Asym_Key_ID , clear_text , signature )

引數

  • Asym_Key_ID
    這是資料庫中的非對稱金鑰憑證識別碼。
  • clear_text
    這是正在驗證的純文字資料。
  • signature
    這是附加在已簽署資料中的簽章。 varbinary.

傳回類型

int

如果簽章符合就會傳回 1,否則就傳回 0。

備註

VerifySignedByAsmKey 利用儲存在資料庫的非對稱金鑰,從先前簽署的資料衍生簽章。VerifySignedByAsmKey 會將新衍生的簽章,與在接收時所簽署之資料相關聯的簽章互相比較。如果新衍生的簽章,與附加在簽署資料的簽章一樣,就證明資料在簽署之後沒有變更。

權限

需要非對稱金鑰的 VIEW DEFINITION 權限。

範例

A. 測試含有效簽章的資料

如果所選的資料在以非對稱金鑰 WillisKey74 簽署之後尚未變更,則下列範例會傳回 1。如果資料已被竄改,則下列範例會傳回 0。

SELECT Data,
     VerifySignedByAsymKey( AsymKey_Id( 'WillisKey74' ), SignedData,
     DataSignature ) as IsSignatureValid
FROM [AdventureWorks].[SignedData04] 
WHERE Description = N'data encrypted by asymmetric key ''WillisKey74'''
GO
RETURN

B. 傳回包含含有效簽章之資料的結果集

下列範例會傳回 SignedData04 中的資料列,它們包含自從以非對稱金鑰 WillisKey74 簽署之後尚未變更的資料。這個範例會呼叫函數 AsymKey_ID,從資料庫取得非對稱金鑰的識別碼。

SELECT Data 
FROM [AdventureWorks].[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)

其他資源

加密階層

說明及資訊

取得 SQL Server 2005 協助