我有一个关于加密的问题:在我的Web应用程序中,我使用了Enterprise Library 5.0,其中有一个加密块。在他们提供的配置工具中,我注册了一个块并生成了一个密钥。这基本上会在Web.config文件中添加几行代码,以便稍后在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的配置管理器以查看密钥,但我能否使用它?
有人能给我详细解释一下吗?
ProtectedData.Unprotect()
解密它。此外,请注意,密钥文件中的前4个字符是版本号,而不是密钥的一部分。根据您的应用程序,您可能希望考虑一次性迁移以使用旧方案进行解密,然后使用新方法进行加密(具体取决于新方法与EntLib的相似程度)。 - Randy Levy