0

我更新了我的问题以反映 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
4

1 回答 1

0

听起来你把事情复杂化了。SQL Server 内置了对加密和用户角色的支持。你最好相信那些建造它的专业人士知道他们在做什么,而不是试图实施你自己的计划。在此处开始阅读有关 SQL Server 加密的信息:http ://technet.microsoft.com/en-us/library/bb510663.aspx

于 2013-09-07T18:23:19.940 回答