Metadata-Version: 2.1
Name: corecipher
Version: 0.1.0
Summary: 加解密工具基础包。提供AES/RSA等加解密方式。
Author: rRR0VrFP
Maintainer: rRR0VrFP
License: Apache License, Version 2.0
Keywords: cipher,corecipher,gcm aes cipher,ctr aes cipher,ecb aes cipher,aes cipher,rsa+aes cipher,rsa cipher
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: msgpack
Requires-Dist: pycryptodome
Requires-Dist: rsa

# corecipher

加解密工具基础包。提供AES/RSA等加解密方式。

## 安装

```shell
pip install corecipher
```
## 加密过程

1. 使用`data_encoder`（内容编解码器）对原始数据进行编码，得到`bytes`类型的原始数据。
    - 默认使用`Utf8DataEncoder`编解码器。
    - 要求原始数据为可以utf8编码的字符串类型。
2. 对`bytes`类型的原始数据进行加密，得到`bytes`类型的加密结果。
3. 对`bytes`类型的加密结果，使用`result_encoder`（结果编解码器）进行编码，得到最终的结果。
    - 默认使用`Base64ResultEncoder`编解码器。
    - 最终结果一般为`str`类型。

## 解密过程

1. 使用`result_encoder`进行解码。
2. 进行解密操作。
3. 使用`data_encoder`进行解码。

## 支持的内容编解码器

- RawDataEncoder
- Utf8DataEncoder
- Gb18030DataEncoder
- JsonEncoder
- PickleEncoder
- MarshalEncoder
- MsgPackEncoder

## 支持的结果编解码器

- RawResultEncoder
- Utf8ResultEncoder
- Base64ResultEncoder
- URLSafeBase64ResultEncoder
- HexlifyResultEncoder

## 支持的加解密方式

### AES加解密

- GCMAESCipher
- CTRAESCipher
- ECBAESCipher
- MysqlCompatibleAESCipher

### RSA加解密

- RSACipher

### RSA+AES加解密

- RESCipher

### 密码表加解密

- M1Cipher
- M2Cipher
- M12Cipher
- S1Cipher
- S12Cipher
- IvCipher
- IvfCipher

## 使用方法

### AES GCM模式加解密

```python
import corecipher
gen = corecipher.GCMAESCipher(password="hello")
data1 = "hello"
data2 = gen.encrypt(data1)
data3 = gen.decrypt(data2)
assert data1 == data3
```

### AES CTR模式加解密

```python
import corecipher
gen = corecipher.CTRAESCipher(password="hello")
data1 = "hello"
data2 = gen.encrypt(data1)
data3 = gen.decrypt(data2)
assert data1 == data3
```

### AES ECB模式加解密

```python
import corecipher
gen = corecipher.ECBAESCipher(password="hello")
data1 = "hello"
data2 = gen.encrypt(data1)
data3 = gen.decrypt(data2)
assert data1 == data3
```

## 版本记录

### v0.1.0

- 版本首发。
- 添加RSA/AES加解密支持。
