首页 > 解决方案 > 无法插入加密数据?

问题描述

我正在尝试将加密数据插入到我的 SQL Server 表中。第一步,我创建了一个主密钥、一个证书和一个私钥:

CREATE MASTER KEY
ENCRYPTION BY PASSWORD = 'PASSWORD@123'
GO

CREATE CERTIFICATE ElipseCert
ENCRYPTION BY PASSWORD = 'SENHA@123'
WITH SUBJECT = 'Certificado Senha Usuario'
GO

CREATE SYMMETRIC KEY KeyElipse
WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE ElipseCert 
GO

在我尝试插入数据后:

OPEN SYMMETRIC KEY KeyElipse
DECRYPTION BY CERTIFICATE ElipseCert

DECLARE @GUID UNIQUEIDENTIFIER = (SELECT KEY_GUID('KeyElipse'))
INSERT INTO Usuario VALUES ('FONSECA', ENCRYPTBYKEY(@GUID, 'Abcd1234'))
GO

SELECT * FROM Usuario

CLOSE SYMMETRIC KEY KeyElipse

但是当我执行代码时返回我:

证书有一个受用户定义密码保护的私钥。需要提供该密码才能使用私钥。

怎么了?

非常感谢!

标签: sql-serverencryptionsql-insert

解决方案


证书有一个受用户定义密码保护的私钥。需要提供该密码才能使用私钥

所以提供密码,替换此代码

OPEN SYMMETRIC KEY KeyElipse
DECRYPTION BY CERTIFICATE ElipseCert

有了这个

OPEN SYMMETRIC KEY KeyElipse
DECRYPTION BY CERTIFICATE ElipseCert WITH PASSWORD = 'SENHA@123';

推荐阅读