加密容器 · 授权码绑定设备 · 本机双击播放

把课程视频
装进加密容器

一个课程包 = 一个加密文件 .xue。AES-256-GCM 分片加密,学员用网盘收到后双击打开,输入授权码联网校验通过才播。密钥始终在你服务器上,退款了在后台点一下就停。

Windows 10 1809+ / 11(64 位)· 内置全部运行时,双击安装即用
AES-256GCM 分片加密
一码一机授权码绑设备
双击本机 .xue 播放
60 秒撤销即失效
CORE CAPABILITIES

不只是一个播放器
而是一套课程交付与授权体系

把“发视频”换成“发授权”:文件本身不带密钥,转发给别人也打不开;谁能看、能在几台设备看、什么时候停,都由你决定。

01

多文件打包成一个容器

一个文件夹、十几节课、配套 PDF 与图片,最终只生成一个 .xue 文件,学员不会拿到零散源文件。

02

真加密,不是改后缀

AES-256-GCM 按 256 KiB 分片加密,每片独立 IV 与认证标签;容器尾部带 Ed25519 签名,被改动立即校验失败。

03

权限可撤回

退款、违约、到期,一键停用对应学员的授权,并立即撤销其正在播放的会话;其他学员完全不受影响。

04

设备数量上限

每张授权码可限定 1 / 2 / 3 / N 台设备。换机时由讲师解绑旧设备释放名额,避免一码传遍全网。

05

会员ID 动态水印

画面持续漂移显示 8 位会员ID,另有一层随机闪现的幽灵水印。外流视频可直接定位到具体账号。

06

全程审计留痕

发码、兑换、激活、播放、停用、查看完整码全部落库,可导出证据链,纠纷时有据可依。

TWO DELIVERY MODES

两种交付方式
同一套密钥与授权体系

v1.5 解决“在线看”,v1.6 补上“发文件”。两种模式共用同一个 .xue 容器、同一批授权码、同一张设备清单,你可以按学员情况混着用。

MODE A

在线流式播放 v1.5 起

课程包留在你的服务器,学员用浏览器打开你的域名,登录后直接播放。密钥不下发,边播边解密,适合临时学员、直播答疑、不方便收文件的场景。

优点:不用发文件、换设备即换即用。代价:服务器要出带宽,学员必须能访问你的站点。

MODE B

本机文件模式 v1.6 新增

把 .xue 通过网盘、U 盘、微信群发给学员。学员装上软件后,这类文件默认由它打开;双击后弹窗要求输入授权码,联网校验通过才开始播放,视频全程在本机解密,不经过浏览器缓存。

优点:不占你带宽、适合大文件和弱网学员、文件发出去也打不开。代价:每次打开都要能连上你的授权服务器。

两种模式的关键区别只有一句话:密钥在谁手里解密。在线模式由服务器解密后切片推流;本机模式由学员电脑上的播放器解密。密钥本身都保存在你的服务器,从不写进 .xue 文件,所以文件怎么转发都打不开。
ENCRYPTION LEVELS

先说清楚加密强度,再谈防护

行业里“视频加密”从伪装链接到硬件级 DRM 差异巨大。xuexibox 当前处于 L2:标准算法 + 自研授权容器,能挡住绝大多数普通用户,但不是好莱坞级 DRM。下表如实标注。

等级方案强度适用
L0
直链 / 改后缀 / 网盘鉴权复制链接即可下载
几乎无防护
L1
防盗链 / XOR 混淆抓包或工具一转就还原
防小白
L2
xuexibox:AES-256-GCM + 授权容器 + 会话水印当前版本所处等级
本产品
L3
Widevine L3 / 商业 DRM 软件级需要商业授权与云端许可
商业课程
L4
Widevine L1 / FairPlay / PlayReady + HDCP硬件 TEE + 受保护输出
影视级
L5
取证水印 + 白盒 + 风控 + 法律追责防不住翻拍,但能追到人
兜底手段

需要说明的是:只要有播放行为,客户端就必然能拿到解密后的画面。任何“绝对防破解”的宣传都不成立。xuexibox 的目标是:提高盗取成本、让泄露可追溯、让授权可撤销。 需要更强防护时可升级到原生播放器内嵌解码 + 白盒加密 + 商业 DRM,路线见随软件附带的《视频加密方式分级与加固路线.md》。

HOW IT WORKS

六步完成一次课程交付

以本机文件模式为例。讲师侧全部在同一个桌面软件里完成,学员侧只需要“装软件 + 双击 + 输码”三步。

加密打包

选择视频、PDF 或整个文件夹,软件读取真实编码,不兼容格式用内置 ffmpeg 转成 H.264/AAC,再加密成一个 .xue。

发给学员

把 .xue 传网盘、发微信、拷 U 盘都行。文件里没有密钥,中途被谁截下都打不开,不必担心传输渠道。

学员装软件

学员安装 xuexibox 后,软件自动把 .xue 登记为自己的默认打开方式,无需管理员权限、无需手动设置关联。

生成授权码

在后台按批次生成 32 位授权码,可设设备上限与有效期。一个学员一张码,多张码可以打开同一个课程包。

双击播放

双击 .xue,界面显示课程名与课时列表并提示输入授权码;联网校验通过后本机解密播放,画面叠加学员水印。

随时撤销

学员退款或违约,在「授权与设备」点撤销,该码与该设备立刻失效:点下一节课当即被拒,正在播的最迟 60 秒停下。

PLATFORM

选择你的平台

桌面端为自包含安装包:Node 运行时、ffmpeg 转码组件、SQLite 数据库全部内置,安装过程不需要联网,也不需要预装任何环境。

Windows

Windows 11 / 10 1809+ / Server 2019+(64 位)· 约 170 MB · 讲师的加密端与学员的播放端是同一个安装包
网盘下载安装包 (.exe)

macOS / Linux 服务端

Node 22 运行时 · 用于公网授权中心部署
查看部署方式 →

Android / iOS

原生加密播放器 · 规划中(当前版本先交付 Windows)
了解路线 →
安装包未做代码签名,Windows SmartScreen 可能提示“未知发布者”,选择“更多信息 → 仍要运行”即可。正式商业分发前建议购买代码签名证书。
SPECIFICATIONS

技术参数

全部实现细节可在随软件附带的《技术设计.md》中查阅,接口、表结构、加密流程均有说明。

加密算法AES-256-GCM,256 KiB 分片,每片独立 IV / 认证标签,AAD 绑定课程包与课时编号
容器格式.xue:Magic + Header JSON + 密文分片 + Ed25519 签名尾部;改一个字节即校验失败
密钥管理内容密钥由主密钥封装后落库,容器内不含明文密钥;主密钥与签名私钥保存在 data 目录,可一键备份
授权模型账号 → 授权(Grant)→ 设备 → 播放会话 四层;在线模式会话 30 分钟过期,15 秒心跳检测停用
授权码32 位 Crockford Base32,含 4 位校验;一码绑一台设备,多张码可打开同一课程包,支持批次、渠道、设备上限、有效期
会员ID8 位数字,按注册顺序自增(10000001 起),对外展示与搜索均使用该编号
播放防护流地址绑定会话、UA 与请求目的;非媒体请求、跨站引用、下载参数一律 403;响应强制 inline
本机文件模式.xue 经网盘分发,双击后由本机内置窗口打开;/app/stream/<课时> 在本机按 Range 解密,视频不进浏览器缓存、不落临时文件
密钥传递每次打开生成一次性 X25519 密钥对,服务器用该公钥做 ECDH + HKDF-SHA256 派生,再以 AES-256-GCM 逐课时封装内容密钥;即使没有 HTTPS,密钥也不以明文过网
设备绑定设备指纹 = 主机名 + 平台 + CPU 型号/核数 + 首块物理网卡 MAC 的 SHA-256 前 128 位;不读注册表、不采集硬盘序列号,受管控电脑也能用
撤销时效本机模式心跳 60 秒一次;切换课时会同步校验,因此点下一节课立即被拒,正在播放的画面最迟 60 秒停止
接口边界/api/app/* 与 /app/stream/* 仅接受 127.0.0.1 / ::1,来自公网的请求一律 403;避免公网部署时变成任意文件读取入口
水印L1 可见动态水印 + L2 幽灵水印(当前);L3 取证隐写与音频水印为后续版本
数据库Node.js 内置 node:sqlite,单文件 data/vault.db,WAL 模式,无需安装数据库
运行方式本地模式只监听 127.0.0.1;公网模式设 VAULT_PUBLIC=1 配合 Nginx / Caddy 提供 HTTPS
备份与迁移「我的 → 数据与版本 → 立即备份」打包数据库与两把密钥,换机时整体拷贝 data 目录即可
FAQ

常见问题

加密后的视频能复制给别人播放吗?

不能。课程包内不含明文内容密钥,播放必须先通过账号、授权、设备三重校验,服务端才会临时启用密钥。把 .xue 文件或播放地址发给别人,对方既解不开也拉不到流;本机文件模式下,文件里的密钥是用“拿到授权的那台电脑”的临时公钥封装的,换台机器就连解封这一步都过不去。

能防止录屏吗?

不能 100% 防止。软件会拒绝浏览器原生下载、禁止右键另存、绑定播放会话,并对疑似捕获行为记录审计;但手机翻拍、HDMI 采集卡属于物理通路,任何软件都无法阻断。真正的兜底是会员ID 水印 + 播放日志 + 用户协议,让泄露可追溯到具体账号。

学员需要安装什么?要注册账号吗?

本机文件模式:安装同一个 Windows 客户端即可,不需要注册账号——打开课程时走“我是学员”入口,只输授权码。软件首次启动会把 .xue 登记为自己的默认打开方式,之后双击就能进。在线模式则不用装任何东西,浏览器打开你的域名登录即可。

一个加密文件能给多少个学员?

不限个数。文件本身是同一份,可以发给一百个人;每个人拿到的是不同的授权码,码与设备一一绑定,谁也用不了别人的码。讲师在后台看到的是“这个课程包下有哪些设备在用”,而不是“这个文件被复制了几份”。

学员断网还能看吗?

不能,这是刻意的设计。每次打开、每次切换课时都要联网校验一次授权,正在播放时每 60 秒心跳一次。好处是撤销立刻生效——你点了撤销,学员那边点下一节课就会被拒,正在播的最迟一分钟停下;坏处是学员必须能连上你的授权服务器。

退款后怎么让学员立刻不能看?

打开课程详情页的「授权与设备」,找到那台设备点“撤销”,或在「授权查询」里作废该码。系统会同时作废这个码对应的绑定、撤销其全部播放会话;在线模式 15 秒内、本机模式 60 秒内(切课时立刻)播放器自动停下。恢复也一样,点“恢复”即可,不用重新发码。

换电脑了怎么办?

让讲师在设备清单里撤销旧设备释放名额,学员在新电脑用同一张码重新打开即可(码未作废就能再次激活)。设备标识由软件按主机名、CPU 与网卡 MAC 计算,不采集主板序列号等硬件不可变信息。

学员会不会把视频另存出来?

本机模式的播放流只监听 127.0.0.1,且拒绝带下载/附件意图的请求,浏览器另存为拿不到文件;容器内也始终是密文。但如前所述,只要画面被播放出来,录屏就防不住——这属于所有非硬件 DRM 方案的共同边界。

能不能部署到公网做远程授权?

可以。v1.5 起支持 VAULT_PUBLIC=1 公网模式,配套提供 Nginx 配置、Dockerfile、docker-compose 与 systemd 服务文件。你需要一台云服务器和一个已备案的域名,按《公网部署指南.md》一步步操作即可,HTTPS 由 Nginx 或 Caddy 负责。v1.6 的本机文件模式只需要学员能访问 /api/client/* 这几个接口,带宽几乎为零。

为什么安装时提示“未知发布者”?

因为安装包还没有购买代码签名证书(OV/EV Code Signing)。这不影响功能,但会触发 SmartScreen 警告。正式对外销售前建议完成代码签名,可显著降低用户流失。

GET STARTED

现在就把第一门课装进加密容器

下载 Windows 安装包,双击安装,导入视频即可生成第一个 .xue 课程包;发给学员后,对方双击这个文件、输入授权码就能看。安装包自带全部运行环境,离线也能加密。

百度网盘下载安装包 查看技术参数
网盘提取码 ijdz(链接已自动填入)。若浏览器拦截弹窗,可复制链接在新标签页打开。
v1.7.0 · 约 170 MB · 支持 Windows 11 / 10 1809+ / Server 2019+(64 位)