yauntyour/DSH-Encrypt

yauntyour★ 0JavaScriptLast synced: 2026-08-16

Open on GitHub

DeepSeek Harness 凭证加密插件,通过设置密码使用AES-256-GCM+SHA3-256实现的全流程加密+校验,运行时临时解密,内存安全。

README excerpt

dsh-encrypt DSH 凭证加密插件 (bundle 形态):一个文件( $DSH HOME/.credentials.yaml )双形态存储——未设密码时是与官方 dsh-credentials-local 完全一致的明文 YAML;在「设置 → 加密安全」设置密码后,同一文件原地替换为 AES-256-GCM 密文文档( Argon2id 派生密钥 + SHA3-256 完整性指纹)。浏览器只提交密码的 SHA3-256 摘要(前后端分离校验),模型请求按需临时解密,明文从不缓存;另提供「N 天免密登录」滑块(仅 localhost 生效),并内置 解锁爆破锁定、凭证泄露检测与输出脱敏、发行代码完整性自校验 。 项目 值 :-- :-- 形态 bundle ( dsh.bundle.patch → cordis.patch.yml ,随 profile 启动, dsh plugin add 原生安装) 版本 0.1.0-rc.9 依赖线 npm rc.1( @deepseek-ai/cordis@^4.0.1 等 scoped 包 + @node-rs/argon2 原生绑定) 环境 Node.js ≥ 18(官方教程建议 22+);DSH @deepseek-ai/[email protected] + License MIT 解决的问题 DSH 默认的凭证存储把密钥以 明文 YAML 写在 $DSH HOME/.credentials.yaml 。dsh-encrypt 用 同一个文件 提供可选的加密形态:设置密码前零改动、完全兼容;设置密码后文件内容被替换为密文文档,凭证只在模型调用发生时临时解密。 特性 - 单文件双形态 :明文 YAML ↔ dsh-encrypt-credentials 密文 JSON 原地互转,不产生第二个文件、不迁移路径 - WebUI 全生命周期 :设置密码 / 解锁 / 修改密码,全部在「设置 → 加密安全」完成(永远密文策略下没有「移除密码」) - AES-256-GCM :每条凭证独立随机 nonce,凭证引用名绑定为 GCM AAD(换位即认证失败) - SHA3-256 双重完整性 :条目级指纹 + 覆盖文档头部的文档级指纹,损坏文件在启动时即被拒绝(绝不当作“空库”) - Argon2id 密码派生 ( @node-rs/argon2 ,m=64 MiB, t=3, p=1,OWASP 对齐):密码不落盘,仅存盐与 AEAD 验证器;旧版 scrypt(v2)密文仍可解锁并在解锁时自动升级到 Argon2id - 摘要校验(前后端分离) :WebUI 用纯 JS Keccak-f[1600] 计算密码的 SHA3-256,只 POST { digest } 到后端;后端用 Argon2id 拉伸摘要并与 A…

View full README on GitHub →
Tools / Devapikeyapikey-managerapikeysapitokenapitokensdshdsh-plugindsh-plugins

Category