VeriRandom公平抽取
首页/文档

从下载到构建,
按自己的方式开始

不写代码也能直接用;想改、想审计、想写插件,这份页面给出命令与入口。 更细的工程约定在仓库的文档里,随代码一起维护。

下载即用 .NET 10 跨平台构建

快速开始

下载发行包

在 Releases 选择平台与架构。桌面便携包解压即用,安装包按向导完成安装。

完成首次引导

阅读可验证抽取说明,确认隐私政策与 GPLv3;随后导入名单、选择外观,再按需完成桌面集成与隐私设置。

导入名单并抽取

名单管理支持 .xlsx / .xls / .csv,导入时可映射列并预览。回到点名页选择名单、人数与筛选条件即可开始。

按需开启验证

默认全部离线。需要更强证据时,再到验证设置里决定是否开启信标熵与时间戳。

从源码构建

需要 .NET 10 SDK。桌面端在本机构建即可;Android 与 iOS 需要对应的工作负载,通常交给 CI 完成。

终端
git clone https://github.com/WinFunan/VeriRandom.git
cd VeriRandom

dotnet restore SecRandom.sln
dotnet build SecRandom.sln -c Release --no-restore
dotnet test  SecRandom.sln -c Release --no-build

# 直接运行桌面端
dotnet run --project SecRandom.Desktop/SecRandom.Desktop.csproj
发布单个平台(自包含)
dotnet publish SecRandom.Desktop/SecRandom.Desktop.csproj \
  -c Release -r win-x64 --self-contained true \
  -o artifacts/SecRandom-win-x64 \
  -p:PublishSingleFile=true \
  -p:IncludeNativeLibrariesForSelfExtract=true

发布 CI 支持的运行时标识:win-x64、win-x86、win-arm64、linux-x64、linux-arm64、osx-x64、osx-arm64。

桌面资源以独立文件形式随程序发布,并以物理文件优先于内嵌资源。修改资源后请重新执行发布,而不是只替换 DLL。

项目结构

项目职责
SecRandomAvalonia 应用层:宿主、窗口、页面、ViewModel、应用服务与本地化
SecRandom.Core领域服务、配置与日志、抽取引擎、证明与档案引擎、共享控件与样式
SecRandom.Shared跨项目契约、基础配置与模型类型,不依赖 UI 运行时
SecRandom.PluginSdk进程内插件基类型与 SRPX 打包目标
SecRandom.Desktop桌面入口,只负责启动 Avalonia 与 Windows UIAccess 准备
SecRandom.Android / SecRandom.iOS移动端入口,注入原生媒体、更新与键盘处理
SecRandom.Platforms.*各平台原生窗口能力与设备枚举,视图不得直接调用平台 API
SecRandom.Core.Tests / SecRandom.Mobile.Tests单元测试、移动端无头 UI 测试

文档索引

威胁模型

逐项攻击的覆盖状态、证明能证明什么、哪些结论今天还不成立。

工程约定

命名空间边界、项目规则与本地化约定,是改动代码前最该读的几页。

更新日志

面向使用者的版本说明,按发布时间组织;工程差异另见分支变更登记。

贡献指南

提交问题与合并请求的方式、分支约定,以及贡献者许可协议。

常见问题

能和原版 SecRandom 装在同一台电脑上吗?

可以。程序名、安装目录、URI 协议、单实例与管道名称、打包标记与用户数据目录都是独立的,互不覆盖。

证明到底能证明什么?

它能发现事后篡改证明、删除旧证明、删光重建,以及抽取之后改名单。它不能证明抽取之前本机程序与名单未被改动,也不能排除抽取前反复试验再挑结果。完整边界见「可验证性」页。

为什么没有自动更新?

本分支不内置自动更新:不会在后台检查、下载或替换程序。请从本仓库 Releases 手动获取新版本;升级代码保留完整,等自有发布源就位后再启用。

必须联网才能用吗?

不需要。点名、抽奖、证明保存、历史查询与证明重放都可以完全离线。只有默认关闭的信标熵、以及默认开启但可以关闭的时间戳会联网,两者都只访问公开服务。

手机端能做什么?

手机可以做点名、抽奖与历史查看;平板使用桌面主界面与完整设置。动态插件只在桌面加载。

数据存在哪里?

默认在软件目录的 data/ 下。便携包不会写到用户目录;安装版只有在包目录不可写时才回落到用户数据目录。

插件安全吗?

插件与宿主同进程、以完全信任运行,permissions 只是声明而不是沙箱。请只安装你信任来源的插件,并留意安装时展示的权限声明。

反馈渠道

准备开始了吗?

先下载跑一遍,再决定要不要开验证。默认配置下,它就是一个纯离线的抽取工具。