RijndaelManaged加密企业库的替换

时间:2014-12-12 10:20:55

标签: c# encryption enterprise-library rijndaelmanaged

我有一个关于加密的问题:基本上在我的Web应用程序中,我使用了Enterprise Library 5.0,它们有一个加密块,所以基本上在他们提供的配置工具中我已经注册了一个块并生成了一个密钥。这基本上在Web配置中添加了几行,因此稍后在Web应用程序中我可以执行以下操作:

Cryptographer.EncryptSymmetric("RijndaelManaged", text);
Cryptographer.DecryptSymmetric("RijndaelManaged", text);

这会自动加密和解密,而不会出现任何问题。

现在我遇到了以下问题,我们正在从Enterprise Library 5.0迁移到Enterprise Library 6.0,在新版本中他们已经删除了Cryptography块,而是建议使用.Net加密。

所以我决定使用Rijndael .Net类用自定义代码替换这一行。我已经使用这个主题作为参考(Encrypt and decrypt a string),但是使用RijndaelManaged创建它,但我有点困惑,关键如何...因为一些数据已加密如何获取和使用能够解密数据并使用它的相同密钥......?

我打开了5.0版的配置管理器以查看密钥但是我可以使用它吗?

任何人都能详细说明这个吗?

1 个答案:

答案 0 :(得分:1)

  

如何获取和使用相同的密钥才能解密数据并使用它??

加密密码的一个想法是它们独立于实现技术。您可以使用.NET加密数据并使用Java或其他任何方法对其进行解密。您需要做的就是总结为:

  • 有钥匙。在对称加密中,相同的密钥用于加密和解密过程
  • 具有配置值(例如IV或初始化向量,密码块的长度,加密类型,使用的散列函数,密码的名称等)

鉴于你有这两个,你可以在任何技术中加密/解密(有点痛苦,先把它拿去,大部分时间用于搜索正确的密钥或配置)

  

我打开了5.0版的配置管理器以查看密钥但是我可以使用它吗?

不熟悉配置管理器,但必须从某处提取密钥。一定要以正确的格式获得它 - 您需要原始二进制格式。如果将其保存在文件中,则可以使用Windows DP API加密,也可以以Base64格式存储。