gpt4 book ai didi

c# - .Net 4.5.2 升级后尝试解密数据时出现 HttpException

转载 作者:太空宇宙 更新时间:2023-11-03 15:51:12 25 4
gpt4 key购买 nike

我有一个 REST 服务 (C#/IIS),其中少量数据使用以下方法加密:

var encryptedText = MachineKey.Encode(bytes, MachineKeyProtection.All)

加密的字符串随后被发布(到 REST 服务)并使用以下方法解码:

MachineKey.Decode(encryptedText, MachineKeyProtection.All)

MachineKey 是自动生成的,如 web.config 中所示:

    <machineKey
decryption="AES"
decryptionKey="AutoGenerate"
validation="AES"
validationKey="AutoGenerate" />

系统从.Net 4.5.1升级到4.5.2后,无法解密升级前加密的字符串;它给出了一个 HttpException“无法验证数据”。 (我可以解密升级后加密的字符串。)

所以 4.5.1 和 4.5.2 之间的算法发生了一些变化,使它们不兼容。我无法在网上找到有关此特定问题的任何信息。有没有人有关于这个问题的具体细节和/或解决这个问题的方法?

如果重要的话,该项目的目标是 .Net 4.0,而不是 4.5、4.5.1 或 4.5.2。

(顺便说一句,听起来不建议将 MachineKey.Encode/Decode 用于除短期加密以外的任何其他用途,这可能是因为此类问题?另外,我知道现在已弃用 Encode/Decode ,但我有一个现有系统,此时无法更改它。)

更新

只有当 key 是自动生成时才会出现问题。如果我给它们明确的值,升级后一切都会继续正常工作。

最佳答案

我注意到的一件事是在 IIS 应用程序池中加载用户配置文件设置。如果您为 IIS 6 兼容性禁用了它 MachineKey.Decode 每次回收应用程序池时都无法解密数据。对于我自己的测试,似乎只有过时的编码/解码方法会受到影响,而且在使用 MachineKeyProtection.All 时也是如此。它们与 MachineKeyProtection.Encryption 配合使用效果很好。

关于c# - .Net 4.5.2 升级后尝试解密数据时出现 HttpException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25733348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com