> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MSIXVC2 加密模型

> MSIXVC2 加密模型

MSIXVC2 引入了一种新的加密模型,专为按版本的内容保护和完全并行处理而设计。本文介绍 MSIXVC2 中加密的工作方式,以及它与原始 MSIXVC 模型的区别。

## 概述

MSIXVC2 在分段级别进行加密。每个分段都被独立加密,从而在上传和分发过程中实现高效的并行处理。加密密钥对于每个包版本都是唯一的。

内容在以下情境下会被加密:

* **在 CDN 上。** 存储在内容分发网络上的内容被加密。
* **在传输中。** 交付到玩家设备的内容在下载过程中被加密。

内容在以下情境下 **不** 加密:

* **安装完成后在玩家设备上。** 已安装的文件在 NTFS 上以普通文件形式存储。没有运行时解密开销。

<Note>
  可执行文件(.exe)作为平面文件仍然处于加密状态,只能被启动,不可读取。这与 MSIXVC 的 [Flat File Install](/build/core-features/common/packaging/packaging-flatfileinstall) 行为一致。
</Note>

此模型与 2022 年 3 月 GDK 为 MSIXVC 引入的 [Flat File Install](/build/core-features/common/packaging/packaging-flatfileinstall) 行为一致,即安装的文件可作为未加密的平面文件访问。MSIXVC2 原生提供此行为,无需 Flat File Install 的提取步骤。

## 按版本加密

每个版本的包都使用各自的一组密钥加密。这意味着:

* **预下载的内容仍然是安全的。** 如果玩家在发布日期之前预下载更新,除非玩家拥有该特定版本的许可证,否则该内容无法被解密。
* **不同的版本使用不同的密钥。** 拥有一个版本的加密密钥并不意味着能访问另一个版本的内容。
* **沙箱和 flight 隔离。** 跨沙箱、flight 或试玩的包可以拥有不同的加密,从而在无需完全重新摄取的情况下实现内容隔离。

<Note>
  按版本许可(即能够独立为各个版本授予许可)当前尚不可用,计划在 2027 年 4 月 GDK 中提供。
</Note>

## 按分段加密

与 MSIXVC 在大块连续区域上应用加密不同,MSIXVC2 独立加密每个分段。这种方式带来若干实际好处:

* **高效分发。** 只有变化过的分段需要重新加密和分发。未变化的分段在 CDN 上保留其现有的加密形式。
* **没有级联式重新加密。** 修改一个分段不需要重新加密相邻的分段。
* **无需考虑 `/maxencryptionfragments`。** `/maxencryptionfragments` 选项在 MSIXVC2 中不再需要考虑。按分段加密模型消除了对该选项的需要。

## 与 MSIXVC 加密的比较

| 方面        | MSIXVC                   | MSIXVC2              |
| --------- | ------------------------ | -------------------- |
| 加密范围      | 大块连续区域                   | 按分段                  |
| 密钥范围      | 跨版本共享                    | 每版本独立密钥              |
| 磁盘上加密(PC) | Flat File Install 后未加密   | 原生未加密                |
| 磁盘上加密(主机) | 加密                       | 不适用(MSIXVC2 仅适用于 PC) |
| CDN 加密    | 是                        | 是                    |
| 传输中加密     | 是                        | 是                    |
| 运行时解密开销   | PC 上无(Flat File Install) | 无                    |

## 对 IO 性能的影响

由于 MSIXVC2 文件在玩家设备上以未加密方式存储,因此没有运行时解密开销。DirectStorage 和标准 Win32 文件读取以全速对普通 NTFS 文件执行。你的游戏引擎在读取来自 MSIXVC2 安装的文件与读取来自未打包构建目录的文件之间不会看到任何差异。

## 上传加密

上传到 Partner Center 的 MSIXVC2 包不使用客户端上传加密。XBOX 服务负责处理用于分发的所有加密。`/l` 和 `/lk` 加密模式仅适用于 XVC 和 MSIXVC(v1)包。

## 另请参见

[MSIXVC2 打包概述](/build/core-features/common/packaging/overviews/packaging-msixvc2-overview) [使用 MSIXVC2 进行内容更新](/build/core-features/common/packaging/packaging-updates-msixvc2) [打包概述](/build/core-features/common/packaging/overviews/packaging) [Flat File Install 概述](/build/core-features/common/packaging/packaging-flatfileinstall) [Make package (makepkg.exe)](/build/core-features/common/packaging/deployment/makepkg)
