0

私はAsymmetric Encryption and Decryptionで遊んでいますが、VerifySignedByAsymKey()を使用したときの結果はわかりません。VerifySignedByAsymKey()が期待値を返しません

なぜこれを行います。

CREATE ASYMMETRIC KEY myasymkey 
WITH ALGORITHM = RSA_2048 
ENCRYPTION BY PASSWORD = '123pass!'; 
GO 

Select VerifySignedByAsymKey(AsymKey_ID('myasymkey'), 
    'Greg', 
    EncryptByAsymKey(AsymKey_ID('myasymkey'), 'Greg')); 
GO 

プロデュース0を?私はそれが1であると予想していた。

答えて

0

データは署名されていないため、暗号化されていません。

SignByAsymKey()を参照してください。次の例では、1を返します。

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

おかげで、むしろ 'EncryptByAsymKey()' 'よりSignByAsymKeyを()'使用してのポイントは何ですか? – Greg

+0

署名すると、署名が生成されます。これは、対称鍵で暗号化された平文のダイジェスト(ハッシュ)です。署名は、元のデータが改ざんされていないことを確認する方法です。単純な例では、暗号文よりもはるかに短い。 128バイト(キー長は1024バイト)、256バイト(キー長は256バイト)。 – RickNZ

関連する問題