gpt4 book ai didi

sql - 使用证书和对称 key 加密 SQL Server 数据

转载 作者:行者123 更新时间:2023-12-02 06:10:58 24 4
gpt4 key购买 nike

我正在尝试使用证书和对称 key 加密数据库列。

我使用以下命令成功创建了证书和对称 key :

CREATE CERTIFICATE MyCertificate
ENCRYPTION BY PASSWORD = 'password'
WITH SUBJECT = 'Public Access Data'
GO

CREATE SYMMETRIC KEY MySSNKey
WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE MyCertificate

我尝试使用以下方法加密和解密一些数据:

DECLARE @Text VARCHAR(100)
SET @Text = 'Some Text'

DECLARE @EncryptedText VARBINARY(128)

-- Open the symmetric key with which to encrypt the data.
OPEN SYMMETRIC KEY MySSNKey
DECRYPTION BY CERTIFICATE MyCertificate;

SELECT @EncryptedText = EncryptByKey(Key_GUID('MySSNKey'), @Text)

SELECT CONVERT(VARCHAR(100), DecryptByKey(@EncryptedText)) AS DecryptedText

当我这样做时,我收到以下错误消息:

The certificate has a private key that is protected by a user defined password. That password needs to be provided to enable the use of the private key.

最终,我想做的是编写一个存储过程,它将一些未加密的数据作为输入,对其进行加密,然后将其存储为加密的 varbinary。然后我想编写第二个存储过程来执行相反的操作 - 即解密加密的 varbinary 并将其转换回人类可读的数据类型。我宁愿不必直接在存储过程中指定密码。有什么办法可以做到这一点吗?我上面的代码做错了什么?

谢谢。

最佳答案

您只需要使用:

OPEN SYMMETRIC KEY MySSNKey
DECRYPTION BY CERTIFICATE MyCertificate WITH PASSWORD = 'password';

关于sql - 使用证书和对称 key 加密 SQL Server 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12334841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com