非Base-64编码秘密上的jwt.io Base-64编码标志意外工作

非Base-64编码秘密上的jwt.io Base-64编码标志意外工作,jwt,base64,Jwt,Base64,我正在尝试验证JWT令牌上的签名。为此,我将我的秘密粘贴到jwt.io,然后粘贴我的令牌,然后检查页面底部的签名验证指示器。最终作为验证签名的是我的非编码秘密,并检查了base 64编码秘密标志 我的秘密是ABC123\u ABC123-ABC123-abC——它包含非法的base 64字符,显然不是base 64编码的,但jwt.io似乎不同意?这是什么原因?在jwt.io的引擎盖下似乎有一些Base64修正,我通过这个工具把我的秘密放了进去,结果似乎符合我的目的 “\”替换为“/”,“-”替

我正在尝试验证JWT令牌上的签名。为此,我将我的秘密粘贴到jwt.io,然后粘贴我的令牌,然后检查页面底部的签名验证指示器。最终作为验证签名的是我的非编码秘密,并检查了base 64编码秘密标志


我的秘密是
ABC123\u ABC123-ABC123-abC
——它包含非法的base 64字符,显然不是base 64编码的,但jwt.io似乎不同意?这是什么原因?

在jwt.io的引擎盖下似乎有一些Base64修正,我通过这个工具把我的秘密放了进去,结果似乎符合我的目的


“\”替换为“/”,“-”替换为“+”,并将“=”添加到pad的末尾,使其达到适当的长度。

因此,您首先将密码(“base64编码的密码”未选中ECD,然后是令牌,它未经验证,然后选中“base64编码的密码”它被验证了吗?当你在标记粘贴后更改右侧的任何内容时,签名将被重新计算,然后自动验证。而且jwt.io上的base64解码器显然是非常宽容的,它使用你提供的任何东西,只是忽略了不可转换的字符。我在c之后重新加载了我的标记以进行验证在检查base64编码框时,我希望可以打开和关闭此行为。有时我觉得它很有用,但更多时候我更希望它不是那样工作的。您在最后一句中描述的只是Base64URL到base64的转换。除此之外,jwt.io还忽略了错误字符。如果您将“!”§$”添加为“base64编码秘密”“,您将获得与使用空秘密相同的结果。