JWT.io 正在根据空秘密验证令牌并表示签名已验证
JWT.io is verifying the token based on empty secret and saying signature is verified
我对此完全陌生,如果我的问题完全愚蠢,请多多包涵。我正在学习如何使用 https://jwt.io
验证签名
下面是我在做的事情
已生成 Public/Private 密钥对
私钥
-----BEGIN EC PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,4A6A48288A531DCA
m2glcvku6rdV8z0QBsBc3Hc72vG4NN3wIPnqdC47FTA3y9WiD7Ukh4m3ZpL2mraz
7PSblIe8ob/aaG9TYViIb4QRYZFg8z3jR6WeNEhC2EbC2CwkSSH3ug8ViQ+1i8d1
kMnQDK1i/s0BZvxlhKPuSy2kOIjelWctkDHvJyvU/WQ=
-----END EC PRIVATE KEY-----
Public键
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHpqkegB/A/12vqfApHOaFXaJcHkyhNw1u9XnZe2+hiDT698U4c3iet5VyTo3D1DOe7Xi5dG07UorsMvWCmSbvU=
我使用 this 网站生成 ECDSA-256 密钥对,密码为 H2
创建一个 JSON 网络令牌 (JWT)
我使用 http://jwtbuilder.jamiekurtz.com/ 生成了令牌
我用私钥签署了JWT
。以下是token
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJIYXJpdCIsImlhdCI6MTU4Nzc1MjM3NCwiZXhwIjoxNjE5Mjg4Mzc0LCJhdWQiOiJodHRwczovL3d3dy5oYXJpdC5kZXYiLCJzdWIiOiJjb250YWN0QGhhcml0LmNvbSIsIkdpdmVuTmFtZSI6Ikhhcml0IiwiU3VybmFtZSI6IkhpbWFuc2h1In0.pmvGfBXH4603YMGYDB6qOXlQjhfdPulvbODrK70ihS0
验证
我去网站 https://jwt.io 下面是我试过的视频
问题
当秘密为空时,JWT 如何验证并将其告知为有效签名。我什至还没有提供秘密。
我错过了什么?
当您在左侧粘贴令牌,然后更改右栏输入字段中的秘密或密钥时,会计算出一个新的签名,然后自动验证。而且secret也可以为空,不可取但可以。
请观察左栏中令牌的签名部分发生了什么。您会发现它发生了变化!
这经常会导致误解,人们在这里问为什么他们的令牌是用给定的秘密验证的,但他们的 API 说它无效。但是他们没有注意到在输入secret的时候签名被重新计算了
如果您想检查令牌是否可以使用给定的秘密进行验证,您总是需要首先将秘密粘贴到右栏的输入字段中(在 VERIFY 下SIGNATURE) 并然后 将令牌粘贴到左栏。
我对此完全陌生,如果我的问题完全愚蠢,请多多包涵。我正在学习如何使用 https://jwt.io
验证签名下面是我在做的事情
已生成 Public/Private 密钥对
私钥
-----BEGIN EC PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,4A6A48288A531DCA
m2glcvku6rdV8z0QBsBc3Hc72vG4NN3wIPnqdC47FTA3y9WiD7Ukh4m3ZpL2mraz
7PSblIe8ob/aaG9TYViIb4QRYZFg8z3jR6WeNEhC2EbC2CwkSSH3ug8ViQ+1i8d1
kMnQDK1i/s0BZvxlhKPuSy2kOIjelWctkDHvJyvU/WQ=
-----END EC PRIVATE KEY-----
Public键
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHpqkegB/A/12vqfApHOaFXaJcHkyhNw1u9XnZe2+hiDT698U4c3iet5VyTo3D1DOe7Xi5dG07UorsMvWCmSbvU=
我使用 this 网站生成 ECDSA-256 密钥对,密码为 H2
创建一个 JSON 网络令牌 (JWT)
我使用 http://jwtbuilder.jamiekurtz.com/ 生成了令牌
我用私钥签署了JWT
。以下是token
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJIYXJpdCIsImlhdCI6MTU4Nzc1MjM3NCwiZXhwIjoxNjE5Mjg4Mzc0LCJhdWQiOiJodHRwczovL3d3dy5oYXJpdC5kZXYiLCJzdWIiOiJjb250YWN0QGhhcml0LmNvbSIsIkdpdmVuTmFtZSI6Ikhhcml0IiwiU3VybmFtZSI6IkhpbWFuc2h1In0.pmvGfBXH4603YMGYDB6qOXlQjhfdPulvbODrK70ihS0
验证
我去网站 https://jwt.io 下面是我试过的视频
问题
当秘密为空时,JWT 如何验证并将其告知为有效签名。我什至还没有提供秘密。
我错过了什么?
当您在左侧粘贴令牌,然后更改右栏输入字段中的秘密或密钥时,会计算出一个新的签名,然后自动验证。而且secret也可以为空,不可取但可以。
请观察左栏中令牌的签名部分发生了什么。您会发现它发生了变化!
这经常会导致误解,人们在这里问为什么他们的令牌是用给定的秘密验证的,但他们的 API 说它无效。但是他们没有注意到在输入secret的时候签名被重新计算了
如果您想检查令牌是否可以使用给定的秘密进行验证,您总是需要首先将秘密粘贴到右栏的输入字段中(在 VERIFY 下SIGNATURE) 并然后 将令牌粘贴到左栏。