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

如何从C# Jose SDK的JWE.Encrypt方法获取符合要求的紧凑格式JWE令牌

解决方案

你当前得到JSON结构的JWE,是因为调用JWE.Encrypt()时传入了多接收者的JweRecipient数组参数,jose-jwt库针对多接收者场景默认输出JSON序列化格式的JWE,单接收者场景使用简化参数即可生成点分隔的紧凑格式令牌。

调整后的代码如下:

AnyJson anyJson = new AnyJson();
anyJson.page = 2;
anyJson.filters = new Filters();
anyJson.filters.startDate = DateTime.Now.Date;
anyJson.filters.endDate = DateTime.Now.Date;

string key = "bXF9p18KmVjgyzv3lP6otbne1W8PLo6gEE287SMyjeI=";

var payload = Newtonsoft.Json.JsonConvert.SerializeObject(anyJson);

// 使用单接收者重载方法,直接输出紧凑格式JWE
string token = JWE.Encrypt(
    payload,
    JweAlgorithm.A256KW,
    JweEncryption.A256GCM,
    Convert.FromBase64String(key)
);

调整后生成的token即为[受保护头].[加密密钥].[IV].[密文].[标签]的5段点分隔格式,完全符合接口要求的结构。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:54:04