写点什么

JWT 和 JJWT 还傻傻的分不清吗

作者:HoneyMoose
  • 2022 年 10 月 03 日
    美国
  • 本文字数:713 字

    阅读完需:约 2 分钟

JWTs 是 JSON 对象的编码表示。JSON 对象由零或多个名称/值对组成,其中名称为字符串,值为任意 JSON 值。

JWT 有助于在 clear(例如在 URL 中)发送这样的信息,可以被信任为不可读(即加密的)、不可修改的(即签名)和 URL - safe(即 Base64 编码的)。

JSON Web Token (JWT) 作为一个开放的标准 (RFC 7519) 定义了一种简洁自包含的方法用于通信双方之间以 JSON 对象的形式安全的传递信息。因为有数字签名,所以这些通信的信息能够被校验和信任。

JWT 可以使用秘钥(secret)进行签名 (使用 HMAC 算法) 或使用 RSA 或 ECDSA 算法的公钥/私钥对(public/private key)。

尽管 JWT 可以在通讯的双方之间通过提供秘钥(secret)来进行签名,我们将会更多关注 **已签名(signed)**的 token。

通过签名的令牌可以验证其中数据的 完整性(integrity) ,而加密的令牌可以针对其他方 隐藏(hide) 申明。

当令牌(token)使用 公钥/私钥对(public/private key)进行签名的时候,只有持有私钥进行签名的一方是进行签名的。

JWT 定义了一个标准,JJWT 是 JWT 基于 Java 的一个实现。

如下图,我们返回的一个 JWT。

 


JWT 是可以解码的。

 


JJWT

JJWT 是基于 JWT 的一个实现。

JJWT 很容易使用和理解。它被设计成一个以建筑为中心的流畅界面,隐藏了它的大部分复杂性。

  • JJWT 的目标是最容易使用和理解用于在 JVM 上创建和验证 JSON Web 令牌(JWTs)的库。

  • JJWT 是基于 JWT、JWS、JWE、JWK 和 JWA RFC 规范的 Java 实现。

  • JJWT 还添加了一些不属于规范的便利扩展,比如 JWT 压缩和索赔强制。

因为 JWT 的官方库不那么好用,那么 JJWT 就是一个目前用得比较多的实现 JWT 的库了。

如果在你的项目中需要使用 JWT,那么用 JJWT 就没有什么问题。

 

https://www.ossez.com/t/jwt-jjwt/14130

用户头像

HoneyMoose

关注

还未添加个人签名 2021.03.06 加入

还未添加个人简介

评论

发布
暂无评论
JWT 和 JJWT 还傻傻的分不清吗_HoneyMoose_InfoQ写作社区