任何人都可以在没有密钥的情况下解码JSON Web令牌(JWT)吗?

Sul*_*Aga 4 c# jwt

我是这个领域的新手,但我试图使用JWT nuget包生成JWT .

我的理解是你提供了一个密钥来签署令牌,但是当我拿到令牌时,我去了JWT网站测试它,网站能够解码它,而我没有提供密钥.

我认为您生成令牌然后您签名,从而阻止任何人知道令牌的内容,除非他们有该密钥.这不是这种情况吗?

Cla*_*ies 6

JSON Web令牌是数据结构的编码表示.这种编码数据不需要加密,但这样做是可以接受的.

从代码签名的定义:

代码签名是对可执行文件和脚本进行数字签名以确认软件作者并确保代码未被更改或损坏的过程,因为它是使用加密哈希进行签名的.

已加密的JWT通常具有两个散列值,第一个用于解密数据,第二个用于验证代码签名.解码未加密的JWT是标准化过程,即使未验证代码符号也可以完成.但是,如果代码签名散列不匹配,建议不要在JWT中使用任何数据,因为这表明数据可能已被篡改.

并非所有JWT实现都支持加密; 值得注意的是,Microsoft的JWT实现中没有加密支持. /sf/answers/1275706701/.因此,如果您有必须确保保密的数据,则应使用JWE加密数据.JWT标准文档显示了此过程的一个示例.首先对数据进行加密,然后将加密的字符串和解码算法作为JWT的有效载荷发送.