对称解密返回 NULL 值

Posted

技术标签:

【中文标题】对称解密返回 NULL 值【英文标题】:Symmetric decrypting returns a NULL value 【发布时间】:2013-04-02 06:59:07 【问题描述】:

我有两个数据库。我从一个表中复制了所有数据并插入到另一个数据库表中。我已经在第二个数据库上创建了对称密钥,但是当我尝试按如下方式运行查询时

 OPEN SYMMETRIC KEY SecureSymmetricKey DECRYPTION BY PASSWORD = N'StrongPassword';        
 select DecryptByKey(columname) as DocSSN from tablename
 CLOSE SYMMETRIC KEY SecureSymmetricKey; 

但总是返回空值。

【问题讨论】:

【参考方案1】:

您需要按照Create Identical Symmetric Keys on Two Servers 中描述的步骤操作。您必须使用新创建的对称密钥重新加密两个服务器/数据库上的所有数据,该对称密钥使用给定的已知密钥材料。事后创建密钥副本是不可能的。

在服务器/数据库之间共享对称密钥是一种非常糟糕的做法。您应该在每个数据库上使用不同的密钥进行加密。

【讨论】:

以上是关于对称解密返回 NULL 值的主要内容,如果未能解决你的问题,请参考以下文章

openssl RSA非对称加密解密

解密的字符串总是返回 Null

GBase8a MPP中有哪些加密函数?

plsql实现DES对称加密

https

Effactive Java -- 对于所有对象都通用的方法