小编jas*_*tim的帖子

我可以控制 SQL Server 使用哪种算法来散列对称密钥密码

在问我的问题之前,我将首先描述问题/原因:

如果您在 SQL 中使用对称密钥来加密数据。这可以设置如下:

CREATE MASTER KEY ENCRYPTION BY PASSWORD='password';
CREATE CERTIFICATE My_Certificate AUTHORIZATION [dbo] WITH SUBJECT = 'My Certificate'
CREATE SYMMETRIC KEY My_Key AUTHORIZATION [dbo] ENCRYPTION BY PASSWORD='CertificatePassword' WITH IDENTITY_VALUE = 'My Key', ALGORITHM = AES_256, KEY_SOURCE = '12345-AABB-1234-BBAA' ENCRYPTION BY CERTIFICATE My_Certificate;My_Certificate
Run Code Online (Sandbox Code Playgroud)

然后可以将其与 de/encryptbykey 函数一起使用以加密数据,反之亦然。

问题是在 SQL Server 2016(或以前版本)上加密的数据如果移动到 SQL Server 2017(重新应用该证书后)将无法访问。

这看起来是 SQL Server 2017 的问题,请参阅:https : //support.microsoft.com/en-us/help/4053407/sql-server-2017-cannot-decrypt-data-encrypted-by-earlier-versions

建议的修复是确保您已安装 CU2 并全局启用跟踪标志 #4631

我的问题是:是否可以(如果可以的话)指定应该使用哪种散列算法。

例如,我可以告诉 SQL 在加密我的证书时使用 sha2_256 吗?

sql-server encryption sql-server-2017 symmetric-key

5
推荐指数
1
解决办法
480
查看次数