面试遇到个怪像: JWT 没用到哈希算法,也没用到不可逆加密啊

2020-04-09 22:35:32 +08:00
 revalue
JWT 就是 JSON Web Token 。

写了几年程序,最近面试几个新同学,随便问了下 JWT 原理,发现他们老是说“哈希哈希”。

我就奇了怪了,难道是我知识有问题。上网看了下文章,有小部分文章的确提到“哈希”这个字眼,这就是在服务器验证 jwt token 是否被篡改的时候。这应该是个“比对”密文的过程吧,但是“比对”不意味着就是用哈希啊,也不意味着不可逆加密啊。

不就是 SHA256 ?难道时带变了?
6657 次点击
所在节点    程序员
48 条回复
revalue
2020-04-10 16:24:19 +08:00
@whoami9894 @changePro jwt 用到的就是数字签名,其实没有产生需要被解密的密文。
上面说 HS 和 RS,区别就是签名的时候用的是 HMAC_SHA256 还是私钥签名。还有验签使用对应的手法就行了。

是这样么?基础不牢地动山摇
dongisking
2020-04-10 16:28:26 +08:00
本来我也想支持 LZ 的,看了这篇文章才知道 HS256 原来 H 就是 hash,长知识了哈哈
mtdhllf
2020-04-10 18:04:36 +08:00
你把 jwt 用 base64 解开,就能看到内容跟对应的 hash 指纹了如{hash:abcd,data:{我是数据}},hash 是后台通过算法生成的,一般都加了盐,不是标准算法.一旦前端改了,hash 值就会对不上,后台就会知道
Shura
2020-04-10 18:06:49 +08:00
写了几年程序不想着补一下基础吗?
jakezh
2020-04-10 18:29:37 +08:00
嗯 是遇到过不少不懂装懂的面试官
有一次遇到一个狂问 sql 的 结果我还得给他普及一下 B+树是什么
Newyorkcity
2020-04-10 19:11:00 +08:00
@Jrue0011 老哥你读文档有作笔记吗?它那个文档好长啊,读着读着我就忘记了连贯不起来了。。
holinhot
2020-04-11 04:43:49 +08:00
签名与校验
Jrue0011
2020-04-11 09:11:22 +08:00
@Newyorkcity 我没有。。。用到才去翻文档。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/660969

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX