4b5b6fb976606a75ac18d69438f1d86d309f2ce7
CypherLegacy Backend
CypherLegacy 是一个基于 FastAPI 构建的数字遗产继承系统后端。它允许用户安全地存储加密的数字资产,并指定在用户去世(被管理员确认状态)后可以由特定的继承人领取这些资产。
🌟 核心功能
- 安全注册与认证: 采用 RSA 密钥对生成机制。用户注册时自动生成公私钥对,公钥用于加密资产,私钥用于解密。
- 数字资产加密存储: 用户可以上传资产,系统使用用户的公钥对资产内容进行加密存储。
- 遗产指定: 用户可以为每个资产指定一名继承人(Heir)。
- 吊唁/状态确认: 系统管理员有权标记用户为“已故”(guale)。
- 遗产申领:
- 只有被确认标记为“已故”的用户,其指定的继承人才能申领资产。
- 申领过程中,系统利用已故用户的私钥解密内容并安全交付给继承人。
- 密钥分片 (Sharding): 支持私钥分片存储逻辑,增强安全性。
🛠 技术栈
- 框架: FastAPI
- 数据库: PostgreSQL (通过
asyncpg异步驱动) - ORM: SQLAlchemy 2.0 (AsyncIO)
- 加密: Cryptography & PyCryptodome (RSA 加密)
- 权限: python-jose (JWT Token)
🚀 快速开始
1. 使用 Docker Compose 启动 (推荐)
这是最快的方式,会自动配置数据库和应用环境。
docker-compose up --build
简单测试:
python3 test/test_scenario.py
- 接口文档:
http://localhost:8000/docs - 管理员默认账号:
admin/admin123
2. 本地手动启动
-
安装环境:
python -m venv venv source venv/bin/activate # Linux/macOS pip install -r requirements.txt -
配置环境变量: 创建一个
.env文件或设置环境变量DATABASE_URL。默认为:postgresql+asyncpg://user:password@localhost:5432/fastapi_db -
初始化数据库:
python reset_db.py -
运行服务:
uvicorn app.main:app --reload
📖 API 概览
用户接口
POST /register: 用户注册,自动生成 RSA 密钥对。POST /token: 登录获取 JWT Access Token。
资产接口
POST /assets/: 创建加密资产(上传者自动加密)。POST /assets/assign: 为资产指定继承人。POST /assets/claim: 继承人申领资产(需原所有人状态为guale)。
管理员接口
POST /admin/declare-guale: 管理员宣告用户“已故”。
🔒 安全设计
- 端到端思想: 资产在存储前使用 RSA 公钥加密。
- 状态验证: 申领逻辑严格校验
heir_id以及author.guale状态。 - 密钥管理: 本项目目前为了演示方便在数据库中存储了私钥,在生产环境下建议配合 KMS 或硬件安全模块使用。
📜 许可证
MIT License
Description
Languages
Python
100%