不喜欢广告? 去 无广告 今天
JSON Web Key (JWK) 集生成器
开发人员安全
广告 移除?
广告 移除?
指导
JSON Web Key (JWK) 集生成器
生成加密签名密钥,格式为JSON Web Key(JWK),并将其组合成可发布到的JWKS(JSON Web Key Set) /.well-known/jwks.json支持RSA、RSA-PSS和ECDSA,覆盖完整的JWA范围(RS256/384/512、PS256/384/512、ES256/384/512)。每个密钥均通过浏览器的Web Crypto API在本地生成——没有任何数据离开页面。
如何使用
- 选择JWA算法——RS256是OAuth 2.0/OIDC的默认算法,ES256生成的签名更小。
- 选择密钥用途:
sig用于签名JWTs,enc用于内容密钥封装,或省略。 - 选择密钥ID(kid)策略——推荐使用RFC 7638的指纹;UUID v4和自定义字符串也可使用。
- 点击 生成并添加到集合。私钥JWK、公钥JWK以及kid会立即显示。
- 点击“生成”并选择不同的算法,即可向同一集合中添加另一个密钥——JWKS集合会自动扩展。
- 复制 公钥JWKS 发布到
/.well-known/jwks.json,并将 私钥JWKS 仅保留在签名服务器上。 - 使用 清除集合 以清除当前状态并重新开始生成JWKS。
特征
- 九种JWA算法 ——RS256、RS384、RS512、PS256、PS384、PS512、ES256、ES384、ES512。
- JWK + JWKS输出 ——单个私钥和公钥JWK,以及符合OAuth 2.0/OIDC格式的多密钥JWKS集合。
- RFC 7638指纹 ——确定性、标准化的值,使客户端能够从发布的JWKS中选择正确的密钥。
kid——基于SubtleCrypto generateKey + exportKey;密钥材料永远不会离开网络。 - 100% 客户端 JSON下载
- ——将私钥JWK、公钥JWK、公钥JWKS和私钥JWKS保存为带有合理文件名的JSON文件。 字段
- 选修的
use——将密钥标记为sig或enc以符合消费者预期。 什么是JWK,它与PEM密钥有何不同?
常问问题
-
JSON Web Key(JWK)是一种表示加密密钥的JSON对象。与PEM(将一个不可读的ASN.1 DER数据块用base64封装)不同,JWK以命名字段(RSA的n、e;EC的crv、x、y)暴露原始密钥参数,并包含如alg、use和kid等元数据。JWK是JOSE(包括JWT、JWS、JWE的标准)的原生格式,因此JWT库可以在无需ASN.1解析器的情况下直接使用它们。
什么是JWKS,我应该在哪里托管它?
-
JWKS(JSON Web Key Set)是一种形式为{"keys":[...]}的JSON文档,列出一个或多个公钥JWK。OAuth 2.0和OIDC服务器会将其发布在已知URL上——通常为/.well-known/jwks.json或OIDC发现文档中的jwks_uri字段值。客户端获取该URL,找到其kid与JWT头部匹配的密钥,并使用该密钥来验证签名。
为什么kid应使用RFC 7638指纹?
-
RFC 7638定义了公钥字段的确定性、标准化哈希值。这为每个密钥提供了一个全局唯一、内容寻址的标识符,即使重新序列化JWK也不会改变。这是最安全的默认设置:两个独立派生kid的实体始终达成一致,且当密钥轮换时会自然生成新的kid。
何时应选择RS256而非ES256或PS256?
-
RS256(RSASSA-PKCS1-v1_5配合SHA-256)是支持最广泛的算法——当需要与较旧的OAuth 2.0/OIDC客户端保持最大兼容性时选择它。ES256(基于P-256的ECDSA)生成的签名更小,是新系统的现代默认选择。PS256(RSA-PSS)是安全增强版的RSA变体——当需要RSA兼容性但希望使用更安全的概率签名方案时选择它。
JSON Web Key(JWK)集合生成器1
