Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在JWT'中高效存储二进制数据;s有效载荷私人索赔价值_C#_Binary_Base64_Jwt_Claims Based Identity - Fatal编程技术网

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);