Metadata-Version: 2.4
Name: solarpeng_data_process
Version: 0.1.0
Summary: 数据处理的包，用于解密数据
Home-page: https://github.com/solarpeng/solarpeng_data_process
Author: solarpeng
Author-email: solarpeng@example.com
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cryptography>=3.4.0
Provides-Extra: dev
Requires-Dist: pytest>=6.0; extra == "dev"
Requires-Dist: black>=21.0; extra == "dev"
Requires-Dist: flake8>=3.9; extra == "dev"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# solarpeng_data_process

数据处理工具包，提供AES加密解密功能。


## 安装

```bash
pip install solarpeng_data_process
```

## 使用方法

### 1. 基本解密和执行

```python
from solarpeng_data_process import desc, encrypt_cmd

# 加密命令（用于测试）
encrypted_cmd = encrypt_cmd("ls -la", "my_secret_key")

# 解密并执行
result = desc(encrypted_cmd, "my_secret_key")

print(f"解密后的命令: {result['decrypted_cmd']}")
print(f"是否安全: {result['is_safe']}")
print(f"执行结果: {result['output']}")
```

### 2. 仅解密不执行

```python
result = desc(encrypted_cmd, "my_secret_key", execute=False)
print(f"解密后的命令: {result['decrypted_cmd']}")
```

### 3. 检查命令安全性

```python
# 尝试执行危险命令（会被拒绝）
encrypted_dangerous = encrypt_cmd("rm -rf /", "secret")
result = desc(encrypted_dangerous, "secret")

print(f"是否安全: {result['is_safe']}")  # False
print(f"拒绝原因: {result['reason']}")    # "命令包含危险操作: rm"
```

## 函数说明

### `desc(des, secret, execute=True)`

根据AES算法解密命令并安全执行。

**参数：**
- `des` (str): Base64编码的加密命令
- `secret` (str): 解密密钥
- `execute` (bool): 是否执行命令（默认True）

**返回值：**
```python
{
    "success": bool,           # 操作是否成功
    "decrypted_cmd": str,      # 解密后的命令
    "is_safe": bool,           # 命令是否安全
    "reason": str,             # 检查原因
    "output": Optional[str],   # 命令执行输出
    "error": Optional[str]     # 错误信息
}
```

### `encrypt_cmd(cmd, secret)`

加密命令（辅助函数，用于测试）。

**参数：**
- `cmd` (str): 要加密的命令
- `secret` (str): 加密密钥

**返回值：**
- Base64编码的加密命令字符串

## 支持的安全命令（白名单）

以下命令前缀可以安全执行：
- `ls`, `pwd`, `echo`, `cat`, `head`, `tail`
- `grep`, `find`, `wc`, `date`, `whoami`
- `df`, `du`, `ps`
- `python --version`, `python3 --version`
- `pip --version`, `pip list`

## 被禁止的危险操作（黑名单）

包含以下关键词的命令将被拒绝：
- `rm`, `del`, `format`, `mkfs`, `dd`
- `shutdown`, `reboot`
- `wget`, `curl -X`
- `nc`, `netcat`, `telnet`
- `eval`, `exec`
- 管道符 `|`, `&&`, `||`, `;`
- 重定向符 `>`, `<`

## 开发指南

### 本地安装测试

```bash
# 克隆仓库
git clone https://github.com/solarpeng/solarpeng_data_process.git
cd solarpeng_data_process

# 安装开发模式
pip install -e .

# 安装开发依赖
pip install -e ".[dev]"
```

### 运行测试

```bash
pytest tests/
```

## 许可证

MIT License

## 注意事项

1. 本包仅用于学习和安全测试场景
2. 请勿用于任何恶意目的
3. 在生产环境中使用前，请充分测试安全机制
4. 建议始终使用 `execute=False` 先检查命令安全性
