RijndaelManaged加密企业库的替换

Aln*_*dru 6 c# encryption enterprise-library rijndaelmanaged

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

Cryptographer.EncryptSymmetric("RijndaelManaged", text);
Cryptographer.DecryptSymmetric("RijndaelManaged", text);
Run Code Online (Sandbox Code Playgroud)

这将自动加密和正确解密,没有任何问题.

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

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

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

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

ole*_*sii 1

如何获取并使用相同的密钥来解密数据并使用它......?

加密密码的想法之一是它们独立于实现技术。您可以使用 .NET 加密数据并使用 Java 或其他方式解密。您需要做的所有事情可以概括为:

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

有了这两个,您就可以使用任何技术进行加密/解密(首先要经历一些痛苦,主要花在搜索正确的密钥或配置上)

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

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