【发布时间】:2014-09-15 20:58:56
【问题描述】:
我有一个客户想要在 ASP.NET Web 窗体应用程序中打开 ViewState 加密。由于 FIPS 合规性,他们无法使用默认算法。来自客户端的初始请求是使用 3DES/AES,如下所示,我将其添加到 web.config 文件中:
<machineKey validationKey="..." decryptionKey="..." validation="3DES" decryption="AES" />
放入此配置导致应用程序停止工作并出现以下错误:
[HttpException (0x80004005): Unable to validate data.]
System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, Boolean useValidationSymAlgo, Boolean useLegacyMode, IVType ivType, Boolean signData) +1090
System.Web.UI.Page.EncryptString(String s, Purpose purpose) +150
[...]
通过将两个键切换到 3DES,我能够让系统正常工作。
为什么使用两种不同的算法时系统会失败?
【问题讨论】:
标签: asp.net encryption