Alice52 / security-tutorial

This repo will record oauth note and sample.
MIT License
0 stars 0 forks source link

[jwt] concept #14

Open Alice52 opened 6 months ago

Alice52 commented 6 months ago
  1. jks
  2. jwt
  3. jwk
  4. jws
Alice52 commented 6 months ago
  1. JKS (Java KeyStore):

    • JKS 文件是 Java KeyStore 的存储格式,通常以二进制形式保存。
    • JKS 文件可以包含私钥、公钥、证书以及受信任的证书颁发机构(CA)证书。
    • JKS 文件可以使用 Java Keytool 工具进行管理和操作。
  2. JWT (JSON Web Token):

    • JWT 是一个基于 JSON 格式的令牌,其内容以 JSON 格式编码,并通过 . 分隔为三个部分:Header、Payload 和 Signature。
    • JWT 的三个部分分别用 Base64 编码,然后由一个 . 连接起来。
    • 一个典型的 JWT 如下所示:header.payload.signature。
  3. JWK (JSON Web Key):

    • JWK 是 JSON Web Key 的表示密钥的标准。
    • 一个 JWK 包含了一系列的键值对,用于表示密钥的各个属性,如密钥类型、算法、公钥/私钥等。
    • 一个典型的 JWK 如下所示:
      {
      "kty": "RSA",
      "alg": "RS256",
      "use": "sig",
      "n": "base64url-encoded-modulus",
      "e": "base64url-encoded-exponent"
      }
  4. JWS (JSON Web Signature):

    • JWS 是用于在 JSON 数据中传输签名的标准。
    • 一个 JWS 包含了两个主要部分:Header 和 Signature。Payload 本身不包含在 JWS 中,但可以与 Header 和 Signature 一起构成完整的签名数据。
    • 一个典型的 JWS 如下所示:
      {
        "header": {
          "alg": "HS256",
          "typ": "JWT"
        },
        "payload": "base64url-encoded-payload",
        "signature": "base64url-encoded-signature"
      }

  1. 在 JWT 中,JWS 被用来对 JWT 进行签名,以确保 JWT 在传输过程中不被篡改
  2. JWK 可以理解为公钥/密钥的一种表示形式
    • 一种通用的密钥表示标准
    • 公钥是非对称密钥的一种