如何衡量 JWT 的大小?

Posted

技术标签:

【中文标题】如何衡量 JWT 的大小?【英文标题】:How to Measure the Size of JWT? 【发布时间】:2021-03-28 10:16:10 【问题描述】:

您如何衡量 JWT 令牌的大小?这是一个长字符串值。

我希望令牌小于 7 kb。

(https://medium.com/dataseries/public-claims-and-how-to-validate-a-jwt-1d6c81823826)

(https://***.com/questions/26033983/what-is-the-maximum-size-of-jwt-token#:~:text=As%20a%20JWT%20is%20included,of%20room%20for%20other%20headers.)

【问题讨论】:

【参考方案1】:

JWT 只是 3 个 base64 字符串,与 . 字符连接。因此,除非您以某种方式将其强制转换为更广泛的字符集,否则 1 个字符 = 1 个字节。

总大小将取决于所使用的签名算法和实际负载大小。 base64 的开销为 3:4。因此,您的 JWT 将始终是原始有效负载大小 * 1.25,加上签名和标头。我通常认为它是 1.5 倍的开销,如果你进来的更小,那是一个奖励。

所有所说的 7kb 对于要在 HTTP 标头中传递的东西来说都是相当大的。我不知道硬限制是什么,但实际上我喜欢保持在 1kb 以下,最好是几百个字符。

【讨论】:

我仍然不明白如何测量令牌的大小。请看一下这个链接(medium.com/dataseries/…),你会发现一个长字符串值 只是一个字符串。 1 个字符 = 1 个字节,除非你正在做一些奇怪的事情,比如通过 HTTP 使用 utf16 或 utf32 感谢您的帮助!

以上是关于如何衡量 JWT 的大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何找到两个不同大小的分布之间的相似性?

如何计算Java对象所占内存的大小

与尺寸相关的事情:在响应式网页设计中平衡行宽和字体大小

如何衡量软件测试的绩效

如何将组合框值与函数一起使用并选择大小写?

如何衡量网站上的页面到页面速度?