[英]How to generate the same signature as the JWT.IO website does?
JWT.IO网站有一个用于创建和验证JSON Web令牌的调试器。
当我将我的秘密字符串复制并粘贴到VERIFY SIGNATURE块中时,我可以看到它生成一个签名。
我向下滚动页面,发现Microsoft实现的.NET解决方案 。 下载后,我添加单元测试以手动生成签名。
但是,JWT.IO网站生成的签名与我的单元测试生成的签名略有不同。
Secrect string: "THIS IS A SECRET STRING WHICH CAN BE SHARED BETWEEN THE SERVICES"
Unit test signature: "B0d57pcHoDiTDE/98dyrMx9HoFKGLOcM094eYBgJqHo="
JWT.IO signature: B0d57pcHoDiTDE_98dyrMx9HoFKGLOcM094eYBgJqHo
我注意到JWT.IO签名字符串是URL编码安全的,但单元测试签名不是。
如何生成与JWT.IO网站相同的签名?
下面接受的答案将我指向了Base64UrlEncoder
类 。 我修改了我的单元测试以生成与JWT.IO网站完全相同的签名:
@ Believe2014似乎jwt.io
网站没有一些选项来指定base64编码,使用哪种URLEncoding生成与单元测试相同的签名。
但是,根据RFC 4648
的第4和第5节,两个签名之间的差异对于字节62
和63
使用不同的字符以及是否省略填充字符=
。
因此,为了将jwt.io
生成的签名转换为你的签名,只需使用/
而不是_
,使用+
而不是-
,并在签名结束时添加填充符=
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.