2025-06-19
个人使用的数据存储器,主要存储账号密码之类的数据。服务器部分功能暂时剔除。
Storage 是一个使用 SwiftUI 编写的本机数据存储示例应用。项目主体是 Storage/Storage 下的 Swift 代码,用于把用户输入的数据加密后保存到本机,并在输入相同 key 后读取和解密。
根目录下的 encrypt.py 不是应用运行依赖,它只是用于辅助说明和验证 Swift 代码中的加密逻辑。
.
├── Storage/
│ ├── Storage.xcodeproj/ # Xcode 工程文件
│ └── Storage/
│ ├── StorageApp.swift # SwiftUI 应用入口
│ ├── ContentView.swift # 主界面、存储、读取、加密和解密逻辑
│ └── Assets.xcassets/ # 应用资源
└── encrypt.py # 加密逻辑辅助说明脚本
StorageApp.swiftStorageApp 是应用入口。它通过 WindowGroup 启动 ContentView,也就是用户看到的主界面。
ContentView.swiftContentView 是项目的核心文件,负责以下功能:
UserDefaults 中,保存 key 为 storedEncryptedPayload。UserDefaults 读取本机保存的加密数据。Swift 代码使用 Apple 的 CryptoKit,具体算法是 AES.GCM。
当前实现的加密规则如下:
0,直到长度为 64 位。AES.GCM.seal 加密。nonce + ciphertext + tag 组合数据的 Base64 字符串。解密时,应用会把 Base64 字符串还原为组合数据,并用同一个 key 调用 AES.GCM.open 解密。
encrypt.py 的作用encrypt.py 使用 Python 的 cryptography 库复刻了 Swift 中的加密流程:
nonce + ciphertext + tag 的 Base64 字符串。因此,它主要用于解释 Swift 加密逻辑,或在命令行中对照 Swift 端的加密结果。它不是 iOS 应用的一部分,应用运行时不会调用这个 Python 脚本。
运行示例:
python3 encrypt.py
如果本机没有安装依赖,需要先安装:
python3 -m pip install cryptography
UserDefaults 中,不会上传服务器。