🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

开机验证门 zoushangkun-dev/dsh-startup-auth-cn

DeepSeek Harness
zoushangkun-dev12 天前有提交已提供中文文档扫描:含敏感能力

启动时播放六幕动画并用 PIN 或指纹验证身份

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/24 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add zoushangkun-dev/dsh-startup-auth-cn
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 12 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令发起外部网络请求
查看扫描证据(共 8 处,展示前 8 条)
  • 执行外部命令来自配置/变量
    lib/index.js:286
    const child = spawn(exe, ['/F', '/IM', 'CredentialUIBroker.exe'], { windowsHide: true })
  • 执行外部命令来自配置/变量
    lib/index.js:315
    const child = spawn(exe, ['-NoProfile', '-ExecutionPolicy', 'Bypass',
  • 执行外部命令来自配置/变量
    lib/index.js:328
    const child = spawn(exe, ['-NoProfile', '-NonInteractive', '-ExecutionPolicy', 'Bypass',
  • 执行外部命令固定命令
    lib/index.js:493
    const child = spawn('powershell.exe', args, { windowsHide: true })
  • 执行外部命令固定命令
    lib/index.js:1192
    const child = spawn('powershell.exe', args, { windowsHide: true })
  • 发起网络请求
    client.js:439
    return fetch(url, {
  • 发起网络请求
    client.js:590
    return fetch('/boot-auth/status', { credentials: 'same-origin' })
  • 发起网络请求
    client.js:1035
    fetch('/boot-auth/settings', { credentials: 'same-origin' }),
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

给 DeepSeek Harness 手搓的开机门:六幕冷启动动画 + PIN / Windows Hello / 验证器动态码,纯本地、零依赖

README

由 DeepSeek 最新模型翻译生成
dsh-boot-handmade 仓库名:dsh-startup-auth-cn · 包名:dsh-boot-handmade(两者故意不同,包名是装进配置档的标识) 给 DeepSeek Harness 手搓的开机门:六幕冷启动动画,加上一把真正拦得住人的锁。 纯前端 + 本地宿主半,零依赖、零联网、零第三方服务。 视觉语言参考了 B 站视频《deepseek 那些豪气冲天的启动动画》(@熟橘枯摘 · BV1T7nM6xEqo)——完整的出处链和三位更早的作者见图末「参考动画与致谢」。 全部用 DOM + CSS + SVG 画出来,没有视频、没有位图、没有第三方素材,任意分辨率都清晰;音效是 WebAudio 现场合成的。 更新记录 0.4.1 - 启动更快:点图标到门可操作 780ms → 400ms;解锁到进工作区约 1.95s,另有 4 秒强制上限——装饰动画永远不能把人挡在门外。 - 门内改 PIN:更改登录密码 就在门上。刚验证过(PIN / 指纹 / 动态码,5 分钟内)只填新 PIN;否则先给当前 PIN。写盘是原子的,不存在改到一半的中间态。 - 进门后的入口:右下角常驻 ⚿,随时改 PIN。层级顶到 2147483645,并且挂载后用 elementFromPoint 自检是否被别的插件盖住,被盖就重排/让位。
展开完整文档(README 剩余 1 节)
dsh-boot-handmade

仓库名:dsh-startup-auth-cn · 包名:dsh-boot-handmade(两者故意不同,包名是装进配置档的标识)

给 DeepSeek Harness 手搓的开机门:六幕冷启动动画,加上一把真正拦得住人的锁。
纯前端 + 本地宿主半,零依赖、零联网、零第三方服务。

视觉语言参考了 B 站视频《deepseek 那些豪气冲天的启动动画》(@熟橘枯摘 · BV1T7nM6xEqo)——完整的出处链和三位更早的作者见图末「参考动画与致谢」。
全部用 DOM + CSS + SVG 画出来,没有视频、没有位图、没有第三方素材,任意分辨率都清晰;音效是 WebAudio 现场合成的。

更新记录

0.4.1

- 启动更快:点图标到门可操作 780ms → 400ms;解锁到进工作区约 1.95s,另有 4 秒强制上限——装饰动画永远不能把人挡在门外。
- 门内改 PIN:更改登录密码 就在门上。刚验证过(PIN / 指纹 / 动态码,5 分钟内)只填新 PIN;否则先给当前 PIN。写盘是原子的,不存在改到一半的中间态。
- 进门后的入口:右下角常驻 ⚿,随时改 PIN。层级顶到 2147483645,并且挂载后用 elementFromPoint 自检是否被别的插件盖住,被盖就重排/让位。
- 面板关不掉:叉号、Esc、点外面,三条独立的路。
- 指纹自愈:采样中途关窗会让 CredentialUIBroker 卡住,下一次采不到样。
现在失败后自动杀掉 broker 重试一次。
- 账号:门上新增「DeepSeek 账号」,验证后自动打开应用自带的账号菜单。
- 去掉没做出来的东西:邮件验证码、微信 / QQ 入口从门上移除。

0.4.0

- 按钮点击音效(WebAudio 现场合成)。

它是什么

DeepSeek Harness 启动时先播一段六幕的开机动画(黑屏描边 → 过曝白闪 → 技术档案 → 权限门 → 核验 → 进入),然后停在一道验证门前:输 PIN、按指纹、或者填验证器动态码,三者任意一个通过才进得去工作区。

它不是"开机自启个小窗"那种装饰,是档在应用前面的最后一步。

三种开门方式

| 方式 | 说明 |
| 访问 PIN | 4–8 位数字,scrypt 加盐哈希存本地,连续错 5 次锁 30 秒 |
| Windows Hello | 调用系统凭据验证(指纹 / 人脸 / Hello PIN),并把系统窗口强制置顶,不会被应用挡住 |
| 验证器动态码 | 标准 TOTP(RFC 6238),手机扫码或手输密钥即可,完全离线;配 8 个一次性备用码防手机丢失 |

安装

1. 克隆到任意目录
git clone https://github.com/zoushangkun-dev/dsh-startup-auth-cn.git

2. 装进 desktop profile(link 方式,改代码即时生效) & "D:\dsh\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add "link:<克隆到的路径>"

3. 重开客户端

Windows 用户也可以直接双击仓库里的 安装.cmd(会先检查客户端是否已退出)。

装在哪个路径都可以,但不要放在会被清理的临时目录——配置档里存的是软链。
客户端运行中直接装通常会成功(实测 pnpm 3.7 秒);如果报 EPERM ... package.json.lock,退出客户端再装。

首次使用

1. 重新打开客户端,动画播完会出现验证门;
2. 先设一个 4–8 位 PIN(这一步会同时把你放进去);
3. 之后再启动,可以直接输 PIN,也可以点「用验证器 6 位码进入」先配好验证器。

强烈建议配置验证器:点「设置验证器(6 位动态码)」→ 屏幕给出 32 位密钥 + 8 个备用码 → 手机装 Microsoft Authenticator / Google Authenticator,选「其他账户 → 输入代码」,把密钥粘进去。

那 8 个备用码只显示一次,请抄在纸上或存进密码管理器。手机丢了或刷机了,它是唯一退路。

配置与数据

全部在本机 ~/.dsh/ 下,插件不联网、不上传任何东西:

| 文件 | 内容 |
| boot-auth.json | PIN 的 scrypt 哈希 + salt(不存明文) |
| boot-totp.json | TOTP 密钥 + 备用码的 scrypt 哈希 |
| boot-recover.json | 可选的邮件救援配置(收件地址 + SMTP 授权码) |

逃生口与回滚

| 场景 | 怎么做 |
| 忘了 PIN / 被锁 30 秒 | 点「用验证器 6 位码进入」,或填备用码 |
| 手机和电脑都不在手上 | 双击 急救绕过.cmd,创建一个标记文件,宿主看到就直接放行 |
| 想彻底撤掉 | 双击 卸载.cmd,或 dsh plugin --profile desktop remove dsh-boot-handmade |
| 想退回旧版本 | 双击 回滚.cmd 选择目标提交 |

急救标记是一个本地文件:%USERPROFILE%\.dsh\boot-auth-bypass。删掉它(或双击 恢复锁定.cmd)即恢复验证。
门不会因为"等久了"自己打开——没有倒计时放行,也没有超时自动进入。

安全边界(请先读这段)

它是仪式感 + 家用门闩,不是保险箱。

- 这个锁保护的是动画和验证这一层,不是整个 Web 服务:懂技术的人可以打开开发者工具删掉遮罩节点,或者直接调宿主接口。
- 真正的强制门禁必须做在应用外壳前面(Electron 主进程 / 系统级),配置档插件够不着。
- PIN 是 scrypt 加盐哈希,会话令牌只在内存,错 5 次锁 30 秒;TOTP 密钥和备用码哈希都在本机。
- 但如果有人已经能读写你的用户目录,他可以直接删掉 boot-auth.json 绕过一切——这是本地锁的固有边界。

换句话说:别把唯一一份重要数据的访问权押在它身上。

常见问题

Q:点「Windows Hello」后系统窗口没出现,或者出现在应用后面? A:插件会把 Credential Dialog Xaml Host 那个窗口强制置顶并抢前台。仍然没出现的话,先到锁屏试试指纹是否正常;不正常说明是本机指纹驱动在用户会话里起不来,需要修驱动,和插件无关。

Q:验证器填了码一直说不对? A:确认填的是 6 位、且是当前显示的码(30 秒一换,插件容忍前后 60 秒)。手机和电脑时间差太多也会对不上。

Q:动画太长 / 太闪? A:门在约 0.8 秒后就可操作,装饰文字在门后面并行播放,不阻塞输入。频闪和撕裂效果已移除。

Q:能改成英文界面吗? A:目前界面文案是中文,代码里没有硬编码依赖,欢迎 PR。

技术细节

- 动画:纯 DOM + CSS + SVG,没有图片、没有字体文件、没有构建步骤
- 宿主半:一个 cordis 插件,注册 /boot-auth/* 路由
- PIN / 备用码:crypto.scryptSync + 随机盐
- TOTP:HMAC-SHA1,与 RFC 6238 官方向量对齐(仓库内 tools/test_totp.mjs 可复跑)
- 邮件救援:调用 Windows 自带 curl.exe 走 SMTPS,不引任何依赖
- 测试:tools/test_boot_auth.mjs(宿主 10 项)、tools/test_totp.mjs(24 项)、tools/test_recovery.mjs(14 项)

已知限制

- 应用内指纹依赖本机 Windows Hello 驱动;部分老驱动只能在锁屏用,应用内验证窗会拿不到采样。
- 启动画面从点击到出现仍受 Electron 本体启动时间影响,插件只负责"出现之后"的那段。
- 「直接进入(跳过验证)」是双入口模式的临时按钮,稳定几版后会移除。

参考动画与致谢

本项目的视觉语言与分幕节奏参考了下面这条视频,并沿着它的出处一路往上追到了三位更早的作者。
我们只做形式参考与工程重写,没有搬用任何原作者的素材或代码。

- 《deepseek 那些豪气冲天的启动动画》— @熟橘枯摘 · BV1T7nM6xEqo

它自己标注的三条源头:

| 灵感来源 | 作者 | 原仓库 |
| 最早的启动动画(按空格/回车推进的第一幕) | 沈宏宏 | 6shenhonghong9/dsh-startup-screen |
| 龙娘启动动画(线描手法) | @mytjxs | mytjxs/codex-startup-animation |
| 550C 启动动画 | @yannicksong0106 | yannicksong0106/dsh-550c-boot |

如果这几样对你有用,请去原仓库点个 star——功劳是他们的。

License

MIT

桌面启动器(V4.1 起内置)

DSH 主进程要几秒才建出窗口,这段时间里连点图标只会拉起几个立刻退出的进程,看起来像「点了没反应」。插件自带一个启动器脚本解决这个问题:

安装启动器.cmd 在桌面创建「DeepSeek Harness (Launcher)」快捷方式卸载启动器.cmd 移除该快捷方式 launcher/ 启动器本体(dsh-launcher.vbs + dsh-launcher.ps1)

点一下,约 100 ms 内弹出小窗显示「正在启动…」,主窗口出现后自动关闭;如果 DSH 已经在运行,启动器直接把已有窗口切到前面,不会重复启动。

排错:launcher/launcher.log 会记录每次调用的每一步。

在应用内修改访问 PIN(V4.1 起)

门上有「修改访问 PIN」入口,不用退出应用、不用把 PIN 重置成未知状态:

- 刚验证过(PIN / 指纹 / 动态码任意一种,5 分钟内):直接填新 PIN 两遍即可
- 没验证过:先填当前 PIN,再填新 PIN 两遍
- 改完不会退出登录,下次开门用新 PIN

为什么要有它:以前改 PIN 只能到门外重设,一旦中途失败,账号就进了死胡同。
现在改动是原子的——要么旧 PIN 还能用,要么新 PIN 已生效,没有中间态。

接口:POST /boot-auth/pin/change,参数 { next, confirm, current? }。
宿主只在「5 分钟内刚验证过」或「当前 PIN 正确」时接受。

DeepSeek 账号:由应用负责,门只负责带路(V4.1 起)

账号的登录与切换属于 DSH 应用本身,插件拿不到(核心的 service-accounts 没有对插件开放)。所以门上只做一件事:

门 →「DeepSeek 账号」→ 验证后进入 → 自动打开应用自带的账号菜单

为什么值得做:不是所有人都找得到那个入口。门在验证完成后会在 3 秒内查找账号/头像元素并点开;找不到就什么都不做——此时人已经在应用里,界面和平时一样。

进门之后也能改 PIN(V4.1 起)

门的入口只在门出现时存在,进了应用就找不到了。所以进入后右下角会常驻一个 ⚿ 按钮,点开就是「修改访问 PIN」面板,参数与门内的那个完全一致。

- 需要当前 PIN(刚验证过 5 分钟内可留空)
- 改完不退出登录,下次开门用新 PIN
- 面板自带样式,不依赖门那套样式表(门关掉时会一起移除)

入口位置与撞车处理(V4.1 起)

入口挂在左下角「已登录 DeepSeek」那一行,而不是飘在角落——那里才是人会看的地方。

找不到时按顺序退:头像/账号元素 → 侧栏底部 → 标题栏 → 右下角浮标。

防撞车:插入后量一次矩形,和自己兄弟节点重叠就撤掉、退到下一个位置;之后每 2 秒复查(最多 10 次),因为别的插件可能是稍后才注入的。
被挤掉时不会盖住别人的控件。

启动器卡在进度条怎么办

症状:小窗弹出来了,进度条跑满,但窗口一直不出现。
原因是任务管理器里还留着一个没有窗口的 DSH 进程,它占着单实例锁;新进程启动后被它挡回来、立刻退出,所以什么都看不到。

启动器现在会识别这种情形:约 5 秒后把小窗文案改成「已有实例在后台,等待窗口」, 20 秒后提示「请在任务管理器结束 DSH 后重试」。真遇到了,按提示做一次即可。

桌面启动器(V4.1 暂不发布)

启动器(launcher/ 目录)先不随这一版发布:它在部分机器上会出现「进度条跑满但窗口不来」的情况,根因还没查透。文件保留在仓库里,等定位清楚再决定是否收回来。安装/卸载的 .cmd 入口已一并移除。

安装启动器.cmd 只是给本地用;装了插件的人不需要跑任何脚本:

右下角 / 左下角的入口 → 「启动方式(可选)」→ 启用桌面启动器

- 默认不装,旧的快捷方式一直可用
- 启用后桌面多一个 DeepSeek Harness (Launcher),点下去立刻有反馈
- 不满意点同一处「卸载启动器」,旧入口从未被动过

之所以做成选装:新入口解决的是「连点好几次」的体感问题,但它依赖 DOM 与窗口行为,不是所有机器都需要,也不该在没验证过的情况下替用户做主。

入口改叫「更改登录细节」(V4.1 起)

这块面板现在管两件事,所以入口名不能只写改 PIN:

鼠标移到「更改登录细节」上 ├─ 更改登录 → PIN 表单 └─ 更改启动方式 → 桌面启动器开关

名字取“细节”是因为找的人不一定是在找密码——也可能是想换启动方式。
单独写「更改登录密码」会让另一半功能显得不存在。

指纹采样失败后的自愈(V4.1 起)

Windows 把 Hello 提示框放在 CredentialUIBroker.exe 里,而且会复用这个进程。
如果在采样中途把窗口关掉(点取消、按 Esc、直接关),broker 会保留一次失效的采样会话:下一次窗口照样弹出来、也显示「请扫描指纹」,但采不到任何东西,只有重启才行。

现在两种处理:

- 自动:这次 Hello 返回 Canceled / RetriesExhausted / no-result 时,宿主先 taskkill /F /IM CredentialUIBroker.exe 再自动重试一次
- 手动:POST /boot-auth/hello/reset 随时清掉卡住的 broker

代价是重试会多弹一次窗;但比“指纹彻底用不了、只能重启”好。

进门后的入口

右下角常驻 ⚿ 浮标,点开是「更改登录 PIN」。它完全在我们自己的 DOM 里,不碰应用界面的框架节点(之前挂进标题栏把界面卡死过,那条路废了)。

进应用后的那个 ⚿ 浮标曾经有两种实现:挂进应用标题栏(后来确认会把界面卡死,因为那部分 DOM 归 React 管),以及右下角浮标。两者在当前版本上都不稳定,故整段移除。

现在能改 PIN 的唯一位置是门本身(「更改登录密码」)。它不碰应用界面,是安全的。
桌面启动器改用 安装启动器.cmd 安装,不再依赖应用内入口。

层级与点得到(V4.1 起)

别的插件也在往右下角放东西,层级低于它们就会变成"看得见、点不到"。三层保障:

1. 门:z-index: 2147483640 + isolation: isolate——锁不该被任何插件盖住
2. 常驻入口:2147483645,面板 2147483646
3. 运行时自检:挂上 400ms 后用 elementFromPoint 量一次自己是不是最上层;被挡就重新 append 到 documentElement 末尾(同层级里后者赢),还被挡就上移一格

第 3 条会往控制台写一行 entry was covered by <对方>,方便以后定位是谁在抢位置。

面板关不掉(V4.1 起)

现象:点叉号没反应,反而听到余额挂件「叮」一声——因为那块角落同时被别的挂件占着,它的点击层压在我们的叉号上。

修法不是抢赢了事,而是让关闭有三条独立的路:

1. 叉号(34×34 热区、面板内 z-index: 5)
2. Esc(键盘,完全不经过那块区域)
3. 点面板外面任何地方

面板整体也从 right:20px 让到 right:84px,不再和挂件重叠。
预览分享卡片长什么样 ↓zoushangkun-dev/dsh-startup-auth-cn
分享 · DeepSeek Harness Hub
zoushangkun-dev/dsh-startup-auth-cn

启动时播放六幕动画并用 PIN 或指纹验证身份

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部