产品定位
抽取本身并不难,难的是结果被质疑时,能拿出别人可以独立核对的东西。
- 用于课堂点名、团队分工、活动抽奖与需要留痕的利益分配
- 更注重结果的可验证性与密码学可靠性,而不是把「随机」当成一句说明
- 默认离线可用;没有账户、云同步或远程控制依赖
- 配置、名单、历史与证明都留在本机,随时可以导出与迁移
与 SecRandom 的关系
VeriRandom 是 SecRandom 的一个开源分支,不应视作 SecRandom 本身。
两个项目各自独立发布,问题与反馈请发到对应仓库。
沿用上游
点名、抽奖、名单管理、历史记录、通知与插件机制都来自 SecRandom。证明文件的上游兼容链也刻意保持可被上游识别。
本分支补充
双链证明、外部信标熵、证明重放、可信度评分、裸随机数页、课件标记、配置签名与更保守的隐私默认值。
命名边界
产品标识是 VeriRandom 自己的;代码内部标识仍保持 SecRandom,因为它们是上游契约,而不是产品身份。
产品标识 · VeriRandom
- 可执行文件与启动器名称
- 安装目录与用户数据目录
- verirandom:// 协议
- 单实例与 IPC 名称前缀
- 打包标记与更新清单文件名
- U 盘安全标记文件名
内部标识 · SecRandom
- 命名空间、项目与文件夹名称
- 资源 URI 前缀
- 证明文件格式与域分隔符
- SecRandom4Ci 等外部契约
这条边界让两个产品可以同机共存,同时不破坏与上游共享的格式和接口。
技术演进
| 版本 | 技术栈 | 阶段 |
| v1 | Python + PyQt5 + qfluentwidgets | 初代桌面实现 |
| v2 | Python + PySide6 + qfluentwidgets | Qt 技术栈演进 |
| v3 | C# + Avalonia + FluentAvalonia | 桌面重构,持续扩展抽取、验证与桌面集成能力 |
许可证
- 本项目以 GNU GPLv3 发布:可以修改与再发布,但衍生作品也必须遵循 GPLv3
- 上游 SecRandom 的代码同样保持 GPLv3,本分支不会改变它的许可
- 贡献者许可协议只约束签署过它的贡献者,不能追溯改变已有贡献的许可;变更出向许可需要提前公告
- 第三方组件、版权与分发审查信息见 THIRD-PARTY-NOTICES.md
免责声明
本项目通过历史平衡的权重与候选过滤策略,帮助降低重复抽取、改善长期分布。它不替代对现实名单、规则或组织流程的管理,也不对这些现实条件作出软件无法验证的保证。
证明与验证能力都有明确边界,详细说明见验证边界与仓库中的威胁模型。
致谢与社区
感谢每一位为 VeriRandom 与 SecRandom 提交代码、报告问题、完善文档和提供反馈的贡献者。