0

asp.netではなくSQL暗号化を反映するように質問を更新しました。

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 に答える