Tsql 文本字段的非对称加密

Tsql 文本字段的非对称加密,tsql,encryption-asymmetric,Tsql,Encryption Asymmetric,我更新了我的问题以反映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 = 'ADifferentPassw

我更新了我的问题以反映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')
我想知道为什么密码加密是用来解密数据的密码,而不是密码解密

然后太加密了我真的不需要密码我只需要引用我的密钥对吗

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

听起来你把事情复杂化了。SQL Server内置了对加密和用户角色的支持。你最好相信那些建造它的专业人士知道他们在做什么,而不是试图实施你自己的计划。从这里开始阅读SQL Server加密:

我更新了我的问题,并给出了您的评论,感谢您让我了解了这一切,因为我仍然在学习这些知识,我倾向于过度思考很多事情。你能就更新的问题给出你的反馈吗?对不起,我不知道你新问题的答案。也许把它作为一个新的发布,这样它就更具可见性了?