Repolode
jwtk

jwtk/jjwt

用于在 JVM 和 Android 上创建、解析和验证 JWT 与 JWK 的 Java 库。

Star
11,144
Fork
1,401
未关闭 Issue
49
最近提交
上个月

这是什么?

JJWT 是一个纯 Java 实现的 JWT 库,遵循 JOSE 工作组的 RFC 规范,覆盖签名(JWS)、加密(JWE)和密钥(JWK)等格式。它提供链式构建器 API,让令牌的创建和验证更简单,并内置常见安全检查。

库支持所有标准 JWS 签名算法,包括 HMAC、ECDSA、RSA 和 EdDSA,也支持 JWE 的加密与密钥管理算法。解析时可以断言 exp、nbf 等声明,大载荷可压缩。配合 Jackson 或 Gson 还能直接将声明与 POJO 相互转换。

JJWT 支持 Java 8 及以上版本和 Android。编译期只依赖 API 模块,实现与 JSON 处理器作为运行时依赖引入,并提供 Maven、Gradle 配置及 Android ProGuard 规则。

核心功能

  • 01支持使用 HS、ES、RS、PS 和 EdDSA 算法创建、解析和验证签名 JWT(JWS)。
  • 02支持使用标准 AEAD 与密钥管理算法进行 JWE 加密与解密。
  • 03支持为常见 Java 密钥类型创建、解析和验证 JWK。
  • 04链式构建器 API,便于 IDE 自动补全。
  • 05支持声明断言,并可通过 Jackson 或 Gson 进行 POJO 序列化。

适用场景

  • 在 Java 或 Spring 后端中签发和验证访问令牌。
  • 为 Android 应用加入基于令牌的身份认证。
  • 使用 JWE 对令牌中的敏感声明进行加密。
  • 在身份系统集成中发布或使用 JWK 集合。

使用前须知

  • 不支持非紧凑(non-compact)形式的 JWS 序列化与解析。
  • PS256/PS384/PS512 需要 Java 11 或更高版本,或在运行时类路径中加入兼容的 JCA 提供者(如 BouncyCastle)。
  • EdDSA 和 XDH 密钥需要 Java 15 或更高版本,或在运行时类路径中加入兼容的 JCA 提供者(如 BouncyCastle)。

收录于专题

标签

常见问题

jjwt 是什么?
用于在 JVM 和 Android 上创建、解析和验证 JWT 与 JWK 的 Java 库。 JJWT 是一个纯 Java 实现的 JWT 库,遵循 JOSE 工作组的 RFC 规范,覆盖签名(JWS)、加密(JWE)和密钥(JWK)等格式。它提供链式构建器 API,让令牌的创建和验证更简单,并内置常见安全检查。
jjwt 可以免费使用吗?用的什么许可证?
jjwt 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
jjwt 还在维护吗?
半年内有更新。jjwt 最近一次提交是在 2026年10月4日。
jjwt 适合用来做什么?
在 Java 或 Spring 后端中签发和验证访问令牌。 为 Android 应用加入基于令牌的身份认证。 使用 JWE 对令牌中的敏感声明进行加密。 在身份系统集成中发布或使用 JWK 集合。
在哪里获取 jjwt?
源代码和安装说明在 GitHub 上:https://github.com/jwtk/jjwt

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目