为什么在JWT签名中需要哈希算法,比如SHA-256?

huangapple go评论96阅读模式
英文:

Why is hashing algorithm like SHA-256 required in JWT signature?

问题

在JWT签名过程中,发行者使用私钥创建基于base64编码的标头和负载哈希的签名。但验证JWT签名的真实性的目的也可以通过仅使用base64编码的内容而不对其进行哈希处理来实现。在JWT签名过程中使用哈希算法(如SHA-256)的重要性是什么?

我期望理解JWT签名过程中使用哈希的目的。我在网上搜索但未找到答案。

英文:

For the signing a JWT, the issuer uses a private key to create the signature of the hash of base64 encoded header and payload.
But the purpose of verifying the authenticity of JWT signature can also be fulfilled by only using base64 encoded contents without hashing them.
What is the significance of using hashing algorithm like SHA-256 in JWT signing process?

I am expecting to understand the purpose of using hashing in JWT signature process. I searched online but could not find the answer

答案1

得分: 0

散列算法如SHA-256接受小于2^64位的输入并产生256位的输出。

因此,如果我们签署散列而不是签署原始JWT内容,签名大小将较小。
因此,在JWT中使用散列的目的是实现压缩,从而减小签名大小。

英文:

Hashing algorithms like SHA-256 take an input of <2^64 bits and produce an output of 256 bits.

So if we sign the hash instead of signing the raw JWT contents, the signature size will be small.
Hence the purpose of using hashing in JWT is to achieve compression thereby reducing the signature size

huangapple
  • 本文由 发表于 2023年7月23日 20:24:02
  • 转载请务必保留本文链接:https://go.coder-hub.com/76748217.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定