扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:lynn 来源:赛迪网技术社区 2007年9月12日
关键字: 加密 SQL Server SQL Server 2005 数据库
⑵ 数据解密
要解密已加密的数据,你需要重新打开对称式加密。使用DecryptByKey函数读数据,然后关闭对称式加密。结果及相应的代码如下。
OPEN SYMMETRIC KEY User1SymmetricKeyCert
DECRYPTION BY CERTIFICATE User1Certificate
SELECT CustID, Name, City,
CONVERT(VARCHAR, DecryptByKey(CreditCardType))
AS CardType,
CONVERT(VARCHAR, DecryptByKey(CreditCardNumber))
AS CardNumber,
CONVERT(VARCHAR, DecryptByKey(Notes))
AS Notes
FROM Customer WHERE CustID = 4
CLOSE SYMMETRICKEYUser1SymmetricKeyCert
这个例子显示了让SQL Server 2005为你管理密钥的一种方法。但实际上,用户总是选择自己提供一个口令的方式,用RC4算法产生对称密码。代码如下:
CREATE SYMMETRIC KEY User2SymmetricKeyPwd
AUTHORIZATION User2
WITH ALGORITHM = RC4
ENCRYPTION BY PASSWORD = 'sdylvxF&imeG3FP'
SQL Server 2005产生一个基于用户提供的口令的密钥来加密数据。除非明确指定,否则口令不保存在SQL Server 2005中,用户必须保护好自己的口令,否则任何一个知道口令的人都可以解密数据。
如果认为对存储在数据库中的数据加密完全是浪费处理器时间和存储空间那就错了。SQL Server 2005中的数据加密是一个非凡的特性,它为客户的数据提供了一个重要的保护层。但应用时要注意,只对那些敏感机密的数据进行保护,因为加密消耗服务器处理器大量的资源,如果对一个有一千万条记录的表的每个字段都加密的话,运行一条没有Where 子句的SELECT 就可能导致服务器性能的崩溃。(e129)
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者