1. Introduction (简介)
JSON Web Encryption (JWE) 使用基于 JSON 的数据结构 [RFC7159] 表示加密内容. JWE 加密机制对任意八位字节序列进行加密并提供完整性保护.
为 JWE 定义了两种密切相关的序列化方式. JWE Compact Serialization (JWE 紧凑序列化) 是一种紧凑的、URL 安全的表示, 旨在用于空间受限的环境, 例如 HTTP Authorization 头部和 URI 查询参数. JWE JSON Serialization (JWE JSON 序列化) 将 JWE 表示为 JSON 对象, 并允许将相同内容加密给多方. 两者共享相同的加密基础.
与本规范一起使用的加密算法和标识符在单独的 JSON Web Algorithms (JWA) [JWA] 规范和该规范定义的 IANA 注册表中描述. 相关的数字签名和 MAC 功能在单独的 JSON Web Signature (JWS) [JWS] 规范中描述.
本规范定义的名称很短, 因为核心目标是使结果表示紧凑.
1.1 Notational Conventions (符号约定)
本文档中的关键词 "MUST" (必须)、"MUST NOT" (禁止)、"REQUIRED" (需要)、"SHALL" (将)、"SHALL NOT" (不得)、"SHOULD" (应该)、"SHOULD NOT" (不应该)、"RECOMMENDED" (推荐)、"NOT RECOMMENDED" (不推荐)、"MAY" (可以) 和 "OPTIONAL" (可选) 应按照 "Key words for use in RFCs to Indicate Requirement Levels" [RFC2119] 中的描述进行解释. 仅当这些术语以全大写字母出现时才应用此解释.
BASE64URL(OCTETS) 表示 OCTETS 的 base64url 编码, 符合 [JWS] 第 2 节.
UTF8(STRING) 表示 STRING 的 UTF-8 [RFC3629] 表示的八位字节, 其中 STRING 是零个或多个 Unicode [UNICODE] 字符的序列.
ASCII(STRING) 表示 STRING 的 ASCII [RFC20] 表示的八位字节, 其中 STRING 是零个或多个 ASCII 字符的序列.
两个值 A 和 B 的连接表示为 A || B.