Initial commit: CDUIGM v1.0.0

This commit is contained in:
dvs
2026-08-28 10:15:15 +08:00
commit abaa20b5b5
4 changed files with 662 additions and 0 deletions
+58
View File
@@ -0,0 +1,58 @@
# 🖥️ CDUIGM — Computer Device Unique Identifier Generation Module
> Generate a unique device identifier (hardware fingerprint) for a Windows computer, with **full legal compliance** (informed consent) built in.
**CDUIGM** collects hardware information (motherboard, system UUID, CPU, disk, MAC address, BIOS, OS) and generates a **SHA-256 fingerprint** as a unique device ID. It includes a non-blocking privacy consent popup and respects user choice (returns a random string if the user declines).
---
## ✨ Features
| Feature | Description |
|---------|-------------|
| 🖥️ **Hardware Fingerprint** | Collects motherboard / UUID / CPU / disk / MAC / BIOS / OS info |
| 🔐 **SHA-256 Fingerprint** | Generates a unique device ID from collected hardware data |
| 🔔 **Informed Consent** | Native non-blocking popup asks user permission before collecting |
| 🔒 **Privacy Respect** | User decline → returns random 64-char string, collects nothing |
| ⚡ **Async API** | `get_device_id()` returns an `Awaitable[str]` |
---
## 🚀 Quick Start
### Run
```python
import asyncio
from cduigm import get_device_id
async def main():
device_id = await get_device_id()
print("Device ID:", device_id)
asyncio.run(main())
```
### Core API
```python
get_device_id() -> Awaitable[str]
```
- **Async non-blocking**: shows a consent popup, collects hardware info, generates SHA-256 fingerprint.
- **User declines**: returns a random 64-character string.
---
## 📄 License
Licensed under the **MIT License**. See [LICENSE](LICENSE).
---
## ⚠️ Legal & Privacy
This module complies with privacy regulations (e.g., China's *Personal Information Protection Law*, Articles 14 & 17):
- Notifies users of collection purpose, method, and scope before collecting hardware info
- Requires explicit consent (click "Yes")
- On refusal, collects no hardware info and returns a random value