C# 在JWT'中高效存储二进制数据;s有效载荷私人索赔价值
我需要有效地将C# 在JWT'中高效存储二进制数据;s有效载荷私人索赔价值,c#,binary,base64,jwt,claims-based-identity,C#,Binary,Base64,Jwt,Claims Based Identity,我需要有效地将字节[]存储到特定的值中 还有什么比将字节[]转换为base64URL更有效的方法吗? i、 e 最终目标是对列表进行编码,使每个UInt16最多为2个字节(在正常JWT解码之后) 考虑到字节[]->UTF8字符串。i、 e.System.Text.Encoding.UTF8.GetString(arrToEnc) 这与JWT通常使用Base64对它们进行编码的方式完全不同 谢谢..Base64添加33℅ 开销取决于内容,但可能更小。另一种选择是base85,但它只改进了7℅ 在b
字节[]
存储到特定的值中
还有什么比将字节[]
转换为base64URL更有效的方法吗?
i、 e
最终目标是对列表
进行编码,使每个UInt16
最多为2个字节(在正常JWT解码之后)
考虑到字节[]
->UTF8字符串。i、 e.System.Text.Encoding.UTF8.GetString(arrToEnc)代码>
这与JWT通常使用Base64对它们进行编码的方式完全不同
谢谢..Base64添加33℅ 开销取决于内容,但可能更小。另一种选择是base85,但它只改进了7℅ 在base64上,不常见,实现无法支持它。如果控制编码器和解码器,这不是问题。
看
你可以压缩内容。base64的最坏情况是33℅, 你将得到的压缩比约为30-40℅, 但压缩时,JWT将执行额外的base64编码,因此即使使用base85,您所需的1:1比率也会有过载
您还可以将gzip添加到服务器,然后压缩比将应用于完整的JWT内容您可以在base64编码之前将内容压缩到zip吗?Base64增加了33%的开销。也许压缩比base85更好,但它只改进了7℅ 在base64上,不常见,实现无法支持它。看,我建议压缩,我可以也将使用gzip。我会写编码器和解码器,所以不常见的是ok。我认为最终解决方案取决于索赔值中“字符串”的字符集。我编码到那个基部。
Microsoft.AspNetCore.WebUtilities.Base64UrlTextEncoder.Encode(arrToEnc);