You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用DataProtection解密时抛出「The payload was invalid」错误的解决咨询

.NET Framework 4.8加密后.NET 6解密报「The payload was invalid」的解决方法

问题场景

通过.NET Framework 4.8加密字符串,代码如下:

var dataProtectionProvider = DataProtectionProvider.Create(new DirectoryInfo(@"d:\SharedKeys\"), builder =>
{
  builder.SetApplicationName("myApp");
});

var dataProtector = dataProtectionProvider.CreateProtector("Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationMiddleware", "Cookies", "v2");
var text = dataProtector.Protect("abc");

得到的密文为:

CfDJ8GHt0XxGzaFBlFEwKShBTYZTKFl3jI6DiCAmTaackE0ymGCf_WeBXN2CL4RHN1i9o5kK5fms-9ZmFHV8-e-3bRd0yR5YOxBdcQoxajS9vCe5lrMNZ0gze0PZ-yfV8kqSMQ

使用.NET SDK 6.0解密时,代码如下:

var protectionProvider = DataProtectionProvider.Create(
            new DirectoryInfo(@"d:\SharedKeys\"), cfg => cfg.SetApplicationName("myApp"));
var dataProtector = protectionProvider.CreateProtector(
    "Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationMiddleware", "Cookie", "v2");
var result = dataProtector.Unprotect(
    "CfDJ8GHt0XxGzaFBlFEwKShBTYZTKFl3jI6DiCAmTaackE0ymGCf_WeBXN2CL4RHN1i9o5kK5fms-9ZmFHV8-e-3bRd0yR5YOxBdcQoxajS9vCe5lrMNZ0gze0PZ-yfV8kqSMQ");

运行后抛出错误「The payload was invalid」,错误触发代码:

if (!CryptoUtil.TimeConstantBuffersAreEqual(correctHash, 0, correctHash.Length, protectedPayload.Array!, macOffset, eofOffset - macOffset))
{
   throw Error.CryptCommon_PayloadInvalid(); // integrity check failure
}

经排查为MAC校验不正确。

解决方法

问题核心是加密与解密时CreateProtector的参数不匹配:

  • 加密代码中第二个参数为"Cookies"(复数)
  • 解密代码中对应参数写成了"Cookie"(单数)

CreateProtector的参数会参与生成加密的目的字符串,参数不一致会直接导致MAC校验失败。只需将解密代码中的第二个参数改为"Cookies"即可,修正后的解密代码如下:

var protectionProvider = DataProtectionProvider.Create(
            new DirectoryInfo(@"d:\SharedKeys\"), cfg => cfg.SetApplicationName("myApp"));
var dataProtector = protectionProvider.CreateProtector(
    "Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationMiddleware", "Cookies", "v2");
var result = dataProtector.Unprotect(
    "CfDJ8GHt0XxGzaFBlFEwKShBTYZTKFl3jI6DiCAmTaackE0ymGCf_WeBXN2CL4RHN1i9o5kK5fms-9ZmFHV8-e-3bRd0yR5YOxBdcQoxajS9vCe5lrMNZ0gze0PZ-yfV8kqSMQ");

内容的提问来源于stack exchange,提问作者user2661881

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 01:27:37