如何解决SQL Server 将算法从 TRIPLE_DES 更改为 AES_128
我想更改一个 SQL Server 数据库的算法,因为它将从 2008R2 更新到 2017。
我想删除并放置 AES 128 的 TRIPLE DES 代码是:
CREATE MASTER KEY ENCRYPTION
BY PASSWORD ='mypassword'
go
CREATE CERTIFICATE my_certificate
ENCRYPTION BY PASSWORD = 'mypassword'
WITH SUBJECT = 'Password',EXPIRY_DATE = '12/31/2199';
go
CREATE SYMMETRIC KEY my_symmetric_key
WITH ALGORITHM = TRIPLE_DES
ENCRYPTION BY CERTIFICATE my_certificate;
go
GRANT CONTROL ON CERTIFICATE::my_certificate TO public
GO
GRANT VIEW DEFINITION ON SYMMETRIC KEY::my_symmetric_key TO public
GO
GRANT REFERENCES ON SYMMETRIC KEY::my_symmetric_key TO public
GO
GRANT CONTROL ON SYMMETRIC KEY::my_symmetric_key TO public
GO
我尝试将它们全部删除并创建一个新的 AES 128:
DROP SYMMETRIC KEY my_symmetric_key
go
DROP CERTIFICATE my_certificate
go
DROP MASTER KEY
go
CREATE MASTER KEY ENCRYPTION
BY PASSWORD ='mypassword'
go
CREATE CERTIFICATE my_certificate
WITH SUBJECT = 'Password',EXPIRY_DATE = '12/31/2029';
CREATE SYMMETRIC KEY my_symmetric_key
WITH ALGORITHM = AES_128,IDENTITY_VALUE = 'myidentityvalue',KEY_SOURCE = 'mykeysource'
ENCRYPTION BY PASSWORD = 'mypassword';
GRANT CONTROL ON CERTIFICATE::my_certificate TO public
GO
GRANT VIEW DEFINITION ON SYMMETRIC KEY::my_symmetric_key TO public
GO
GRANT REFERENCES ON SYMMETRIC KEY::my_symmetric_key TO public
GO
GRANT CONTROL ON SYMMETRIC KEY::my_symmetric_key TO public
GO
虽然没有出错,但我尝试了 ENCRYPTION
OPEN SYMMETRIC KEY my_symmetric_key
DECRYPTION BY CERTIFICATE my_certificate WITH PASSWORD = 'mypassword'
..
SELECT CAST(EncryptByKey(Key_Guid('my_symmetric_key'),@thingtodecrypt) as varbinary)
我收到此错误:
The key is not encrypted using the specified decryptor
感谢任何帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。