首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server加密/解密

Server加密/解密
EN

Server Fault用户
提问于 2010-12-08 12:29:28
回答 1查看 246关注 0票数 0

作为灾难恢复测试的一部分,我试图确保我能够重新创建我的DB,并且仍然能够解密以前加密的字符串。

所以这就是我作为一个测试所做的。

  1. 创建数据库证书。
  2. 将证书和私钥备份到磁盘。
  3. 创建由证书加密的对称密钥。
  4. 使用EncryptByKey将"Hello“加密成一个十六进制字符串。保持对此加密字符串的掌握,以便在下面使用。
  5. 使用DecryptByKey将十六进制字符串解密为"Hellow“。

一切都很好,但我正在尝试.

  1. 放下钥匙和证书。
  2. 再次从备份证书中重新创建证书。
  3. 与以前一样,创建一个新的对称密钥。
  4. 尝试并解密先前加密的字符串,但它不起作用。

让它工作的唯一方法是在创建对称密钥时指定一个KEY_SOURCE和IDENTITY_VALUE,但是MSDN说IDENTITY_VALUE是用来创建“临时键”的,所以不确定是否使用它。

对此有什么想法吗?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2010-12-08 16:00:43

不能有要求用户提供对称密钥材料来恢复数据的灾难恢复计划。对称密钥与数据库中的数据一起存储,恢复数据的灾难恢复计划也将在此过程中恢复密钥。

所有加密方案都使用从用户提供的工件(密码或外部密钥)开始的密钥层次结构。这反过来用于加密其他密钥,以简化管理和操作: 1)允许简单的密钥更改,w/o重新加密所有数据;2)允许使用快速对称密钥加密大数据量。恢复后唯一需要的是访问层次结构顶部主键的密码。您通过删除用于加密数据的密钥进行的测试基本上是没有意义的。

您正在使用已知密钥材料(KEY_SOURCE)加密您的数据,这是一个非常糟糕和危险的途径。您的密钥来源很可能在脚本和其他存储密钥材料(电子邮件、配置文件等)的媒体中泄漏,因此在实践中,您最好不要加密任何东西,因为您的密钥被太多人所知,因此无用。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/210406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档