回答

0

您只加密了數據,未對其簽名。

參見SignByAsymKey()。以下示例返回1:

declare @clear varchar(128) 
set @clear = 'Greg' 
Select VerifySignedByAsymKey(AsymKey_ID('myasymkey'), @clear, 
     SignByAsymKey(AsymKey_ID('myasymkey'), @clear, N'123pass!')) 
+0

謝謝,使用SignByAsymKey()而不是EncryptByAsymKey()的意義何在? – Greg 2012-01-07 17:41:27

+0

簽名產生一個「簽名」,它是明文的摘要(散列),然後用對稱密鑰加密。簽名是驗證原始數據未被篡改的一種方式。對於非平凡的例子,它也比密文短得多;對於1024字節的密鑰長度爲128字節,對於256字節的密鑰長度則爲256字節。 – RickNZ 2012-01-07 23:02:21