我更新了我的问题以反映 sql 加密而不是 asp.net。
我在 sql 中创建了我的密钥
USE DatabaseName
GO
CREATE ASYMMETRIC KEY MyKey
WITH ALGORITHM = RSA_2048
ENCRYPTION BY PASSWORD = 'Password1'
然后我修改了密钥私钥密码
ALTER ASYMMETRIC KEY MKey
WITH PRIVATE KEY
(ENCRYPTION BY PASSWORD = 'ADifferentPassword',
DECRYPTION BY PASSWORD = 'Password1')
我想知道为什么ENCRYPTION BY PASSWORD是用于解密数据的密码而不是DECRYPTION BY PASSWORD?
然后太 ENCRYPT 我真的不需要密码我只需要引用 MyKey 这是正确的吗?
INSERT dbo.BookSellerBankRouting
(BookSellerID, BankRoutingNBR)
VALUES (22,
EncryptByAsymKey(AsymKey_ID('MyKey'),
'1234567'))
我以为您必须指定要加密的加密密码和要解密的解密密码。
但是当我在下面的语句中使用加密密码时,它会解密数据并且解密密码失败
SELECT CAST(DecryptByAsymKey
( AsymKey_ID('MyKey'),
BankRoutingNBR,
N'ADifferentPassword') as varchar(100)) BankRoutingNBR
FROM dbo.BookSellerBankRouting
WHERE BookSellerID = 22