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

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

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

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

不就是 SHA256 ?难道时带变了?
6375 次点击
所在节点    程序员
48 条回复
eminemcola
2020-04-09 22:38:20 +08:00
SHA256 确实是一种 hash 呀
wsy2220
2020-04-09 22:39:10 +08:00
无言以对
luckyrayyy
2020-04-09 22:40:45 +08:00
安全散列算法(英语:Secure Hash Algorithm,缩写为 SHA )
散列和哈希和摘要,指的都是同一种东西吧。
chendy
2020-04-09 22:41:43 +08:00
SHA256 不是一种哈希算法?
revalue
2020-04-09 22:42:34 +08:00
上面好像打错了,“JWT 签名算法中,一般有两个选择,一个采用 HS256,另外一个就是采用 RS256 。”
yxwzaxns
2020-04-09 22:49:02 +08:00
老哥是搞前端的么,是的话可以理解你发的帖子
malusama
2020-04-09 22:49:18 +08:00
HS256 中用到的 SHA256 是否是一种哈希算法?
paragon
2020-04-09 22:49:36 +08:00
你都知道 JWT 是 JSON Web Token 难道不知道 HMAC 是 Hash-based message authentication code ?
revalue
2020-04-09 22:50:24 +08:00
@malusama 哈哈哈 看到了好像是
@yxwzaxns 是前端出身,史上最菜面试官
HuHui
2020-04-09 22:51:42 +08:00
装逼失败了么?
hoyixi
2020-04-09 22:51:49 +08:00
很多东东,不翻译成中文,直接用英文,少了很多扯皮和迷惑
loading
2020-04-09 22:51:53 +08:00
被你这么一搅,我已经不懂 jwt 了。
revalue
2020-04-09 22:55:33 +08:00
@HuHui 装逼失败。再看看呗
wangyzj
2020-04-09 23:07:51 +08:00
习惯问题
md5 说成 hash 我也不习惯
Keyes
2020-04-09 23:16:19 +08:00
亲,咱们这边的建议去了解一下数字签名呢
Sunkz
2020-04-09 23:23:04 +08:00
数字签名 正解
ragnaroks
2020-04-09 23:29:52 +08:00
搜索的时候加上"-csdn"
upupddd
2020-04-10 01:26:55 +08:00
不 是时代变了
ipwx
2020-04-10 01:28:32 +08:00
数字签名:内容 + 根据内容算出来的签名码。签名码的计算方法各有不同,但是主旨都是为了保证只有内容的生产者才能计算出正确的签名码。篡改内容的人,无法为篡改后的内容算出正确的签名码。

HMAC 的签名码计算方法,粗略可以理解为:哈希函数(内容 + secret key)

当然还有别的计算方法。比如使用非对称加密。比如 RSA 签名:RSA 加密(内容)

最后就是,这个世界上有很多不同的已经被发明出来的哈希函数。除了已经被淘汰(比如 md5 ),还有 rsa256, rsa512 等等。
ipwx
2020-04-10 01:30:21 +08:00
补充:RSA 签名中,私钥用来加密,公钥用来解密。私钥只有内容生产者知道,公钥所有人都知道。私钥加密的信息只有公钥才能正确解开,反之亦然。篡改者不知道私钥,保证了他无法伪造签名。具体可以去了解一下 https 。

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

https://www.v2ex.com/t/660969

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

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

© 2021 V2EX